2009-10-22 80 views
0

今天再次提出如何处理,允许用户将自定义字段添加到产品数据库中交付的标准实体模式。我喜欢实际上提供一个给用户有限的DDL函数的函数,所以他们实际上可以在表中添加一个新的自定义字段。另一种方法是为自定义字段提供单独的表格,例如客户和CustomersEx,只有CustomersEx可以更改,但这里的更新变得比平常更复杂。我们讨论的最后一个也是最麻烦的选项是提供一个EAV表,其中行是实体名称,字段名称,字段值。用户向实体添加自定义属性的最佳方法是什么?

哪种方法最好?

回答

0

我赞成通过DDL向表中添加字段,但该表应与主表分开。这样,您可以将更改脚本编写为脚本,而不会影响用户的自定义字段添加。右连接很容易完成,如果没有自定义字段,则不需要单独表中的记录。

如果您只是想以垂直方式显示数据,EAV表格可能是一个不错的选择。您还可以运行数据透视查询以水平显示它们。

1

我赞成你的第二个想法。我们做类似的事情,但是调用表Attr [ibute]表,例如公司,CompanyAttr。这些属性是我们业务对象(1:M)中的一个集合,NHibernate处理数据库操作。我们将这些字段显式显示为UI中的属性,不要试图将它们显示为表中的附加字段。

+0

我喜欢你注意不要试图抹掉两张桌子之间的分隔线。 – ProfK 2009-10-22 19:42:29

相关问题