在应用程序中支持自定义字段的设计模式是什么?
我们开发了一个商业应用程序。我们的客户要求定制领域的支持。例如,他们想在“客户”表单中添加一个字段。 存储字段值和有关字段的元数据的已知设计模式是什么? 我现在看到这些选项: 选项1:将varchar类型的Field1,Field2,Field3,Field4列添加到我的Customer表中。 选项2:在客户表中添加XML类型的单列,并将自定义字段的值存储在xml中。 选项3:添加带有varchar类型的列的CustomerCustomFieldValue表,并将值存储在该列中。该表还将具有一个CustomerID,一个CustomFieldID。 CustomerID, CustomFieldID, Value 10001, 1001, '02/12/2009 8:00 AM' 10001, 1002, '18.26' 10002, 1001, '01/12/2009 8:00 AM' 10002, 1002, '50.26' CustomFieldID将是来自另一个名为CustomField的表的ID,其中包含以下列:CustomFieldID,FieldName,FieldValueTypeID。 选项4:添加带有每个可能值类型的列的CustomerCustomFieldValue表,并将值存储在右列中。与#3相似,但字段值使用强类型列存储。 CustomerID, CustomFieldID, DateValue, StringValue, NumericValue 10001, 1001, 02/12/2009 8:00 AM, null, null 10001, 1002, null, null, 18.26 10002, 1001, 01/12/2009 8:00 AM, null, …