我不知道正确的数据库术语来解释我在问什么,所以我会尽力解释它。
我有一个发票模型,它有一个发票人。
发票人可以是内部部门或外部部门。
我可以用一个发票表来设置它,该表的列让人感觉很乱(它会留下很多 nil 列)。
我可以设置一个 internal_invoicee 和 external_invoicee 表,并且只根据需要创建一个看起来更好的表,但是我必须管理 2 个不同的关联。
然后,我可以在我的发票模型中设置一个 invoicee 方法,该方法根据存在的发票返回内部或外部发票,并管理业务逻辑以便只存在一个。
第二种解决方案似乎是更好的方法,但对我来说仍然感觉很混乱。在 Rails 中有内置的方法吗?感觉就像一个多态关联,只是反向。
我从来没有看过 NoSQL 数据库,但这是他们擅长的事情吗?