我正在寻找一份教程,以指导我如何使用用户定制字段。就像在调查网站上一样,他们允许用户创建自定义字段并存储它们,更重要的是存储通过这些字段输入的数据。
我正在寻找描述这个数据库操作的教程。我遇到了一些问题,因为找到一种不需要花费很长时间来提取这些数据并将其导出到Excel / CVS文件的方法比较困难。
我正在寻找描述这个数据库操作的教程。我遇到了一些问题,因为找到一种不需要花费很长时间来提取这些数据并将其导出到Excel / CVS文件的方法比较困难。
实体-属性-值模型通常用于在关系型数据库中处理这种情况。快速搜索“EAV模型”将提供比您所需更多的信息。
我们使用3个表格来支持用户定义字段,每个表格一个。
例如,如果您想将其应用于您的SURVEY表格,您可以创建:
SURVEY_ATTRIBUTE
- SurveyAttributeId
- SurveyAttributeName
- SurveyAttributeType
SURVEY_ATTRIBUTE_CHOICE
- SurveyAttributeChoiceId
- SurveyAttributeChoice
- SurveyAttributeId
SURVEY_ATTRIBUTE_VALUE
- SurveyAttributeValueId
- SurveyId
- SurveyAttributeValue
SURVEY_ATTRIBUTE表每个自定义属性存储一条记录。 SURVEY_ATTRIBUTE_VALUE表存储实际分配给调查的属性。因此,如果某个属性不适用于调查,则不会存储任何内容。 SURVEY_ATTRIBUTE_CHOICE表存储类型为“LIST”的属性的所有可选选择。
SURVEY_ATTRIBUTE表中的SurveyAttributeType字段用于描述属性的类型。我们只使用少量允许的类型,如CHAR、DATE、NUMBER、LIST。根据该值,我们的应用程序知道如何处理存储在SurveyAttributeValue字段中的值。当然,您可以进一步规范化,允许更广泛的范围,指定最大字段长度等等...这完全取决于您希望给予最终用户的自由程度。我们尽量保持简单,因为我们的目标受众不是数据库管理员,而是最终用户,他们通常不关心字段长度等等。
您还可以选择跳过SURVEY_ATTRIBUTE_CHOICE表,将允许的值存储在SURVEY_ATTRIBUTE字段中的XML字符串中。这将取决于您将如何在应用程序中实现。