C# 可定制用户&x27;s涉及实施

C# 可定制用户&x27;s涉及实施,c#,database-design,entity-attribute-value,C#,Database Design,Entity Attribute Value,我正在为服务提供商开发一个计费系统,我必须实现一个名为可定制偏好模式的东西。主要功能应该是允许管理员定义在各种情况下哪些字段是必需的。例如,如果客户仅在现场注册,他必须输入名字、姓氏和电子邮件地址。如果他订购的东西是可计费的,那么他应该输入一些基本的地址数据,但如果他想要一些具体的东西,他应该输入计费和发货地址。我想让管理员定义哪些字段是每个产品(或类别)地址的必填字段,哪些地址(账单、发货、主地址等)是必填字段。如果一个产品/服务需要多个地址,则所有地址都具有相同的必填字段列表。 重要的一点是

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

我的问题是,什么样的模型应该适合这个问题。我想customer对象应该有地址列表。每个地址都应该有它的名称(账单、主地址、发货地址)和对其值的引用。在数据库方面,我的想法是用一个表来表示具有标准属性作为列的地址,并用一个EAV表来表示自定义属性(由管理员定义)。我曾考虑过类表继承,但在这里并不合适,因为我没有地址的最终属性集。第二种选择是使用XML列存储自定义属性,但我还没有使用该数据类型,而且我对性能也不确定。我知道EAV不是标准的关系设计,但在这里它看起来还不错。 但是,正如我所说,我不是100%确定这些解决方案中的任何一个,我想听听其他一些想法

提前谢谢。

看一下

看一下