可定制的用户地址实现

时间:2010-07-30 12:08:01

标签: c# database-design entity-attribute-value

我正在为服务提供商开发一个计费系统,我必须实现一个名为Customizable preferences schema的东西。主要功能应该是允许管理员定义在各种情况下哪些字段是必需的。例如。如果客户只在现场注册,他必须输入名字,姓氏和电子邮件地址。如果他订购了可计费的东西,他应该输入一些基本的地址数据,但如果他想要特定的东西,他应该输入账单和送货地址。我想允许管理员定义哪些字段对于每个产品(或类别)的地址是必需的,以及哪些地址(计费,运输,主要等)是强制性的。如果一个产品/服务需要多个地址,则所有产品/服务都具有相同的必填字段列表。 一个重要的事情是应该允许定义其他字段。 选择地址架构的规则将基于产品和/或国家/地区。

我的问题是这个问题应该是什么样的合适模型。我想客户对象应该有地址列表。每个地址都应该有它的名称(Billing,Main,Shipping)并引用它的值。在数据库方面,我的想法是将一个表用于具有标准属性作为列的地址,并且具有一个用于自定义属性的EAV表(由管理员定义)。我考虑过类表继承,但这里不合适,因为我没有地址的最终属性集。第二个选项是使用XML列存储自定义属性,但我没有使用该数据类型,我不确定性能。我知道EAV不是标准的关系设计,但在这里看起来还不错。 但是,就像我说的那样,我对这些解决方案并不是100%肯定,并希望听到其他一些想法。

提前致谢。

1 个答案:

答案 0 :(得分:1)

查看 this discussion