我正在处理包含汽车和所有者的表(表CO
)。我正在创建另一个表来包含用户可以通过GUI分配的所有者属性(表OwnerAttributes
)。我的问题在于,所有者不是唯一的,因为我使用的是SQL Server,我无法在其上创建外键。表格中有一个ID,但它将车辆和车主识别为一个整体。在SQL Server中创建具有非唯一列的外键
我必须解决这个问题的想法是创建一个包含不同的业主,然后添加一个触发器表CO
将更新Owners
任何变化的新表(表Owners
)。然后我可以使用表Owners
作为我的OwnerAttributes
表,并解决我的问题。
我想回答的问题是,如果有更好的方法来做到这一点?
我正在使用一个预先存在的数据库,这是旧的应用程序大量使用。该应用程序被连接使用表CO
为业主和汽车。还有其他几个表使用CO
表。我希望我可以将表格拆分为Owners
和Cars
,但该公司不希望我花费我所有的时间来完成这项工作,因为我需要添加更多功能以添加到应用程序中。
听起来像您正在使用实体属性值模式设计[OwnerAttribute]表。也许有这里阅读关于这种方法的优点/缺点:http://stackoverflow.com/questions/870808/entity-attribute-value-database-vs-strict-relational-model-ecommerce-question – Kane 2012-02-17 23:07:49
我写了一篇博客张贴关于它。不确定它是否与操作相关,但对于搜索EAV的人来说,值得一看(特别是随后的讨论):http://sqlblog.com/blogs/aaron_bertrand/archive/2009/11/19/what- is-so-bad-about-eav-anyway.aspx – 2012-02-17 23:23:20