如何为具有自定义表单字段的上下文建模

时间:2017-12-15 13:59:36

标签: database-design

我正在研究db和Im做一些建模练习。但在一个我无法找到解决方案。

上下文

有一个实体"会议"可以有1种以上的注册类型。对于每种注册类型,有2个必填字段:名称和电子邮件。

但是,我怀疑的是,除了这两个必填字段之外,还可以使用不同的注册类型创建会议,每个注册类型都可以有自定义字段,例如除了姓名和电子邮件之外,会议创建者还可以收集电话什么的。这些自定义字段可以是:复选框,输入,选择,文本区域,日期和上传文件。会议创建者可以选择每个字段是否强制。

我试图找到这种建模的解决方案,但没有成功。你知道如何建模吗?

在这种情况下,我确定了实体:会议,注册类型和表格,它们的相关性如下:

1 to many relationship from Conference To Registration type (non-identifying)
1 to many relationship from RegistrationType to Form  (non-identifying)

所以:

Conference: ConferenceID, Name, etc
RegistrationType: RegistrationTypeID, Name, Description, capacity, etc, ConferenceConferenceID
Form: idForm, RegistrationTypeRegistrationTypeID

但是你知道如何设计自定义字段部分吗?

1 个答案:

答案 0 :(得分:0)

注册类型的情况看起来像是类和子类的经典案例,或者,如果您愿意,则类型和子类型。在实践中,这个事物的王者总是出现。但在数据建模教程中经常会跳过它。

对象建模器使用对象模型中内置的继承工具来轻松处理这个问题。子类只是扩展了类。

ER建模者可以使用“泛化和专业化”图来在ERD中对此进行描绘。但ER建模并没有告诉你如何构建表。

查看这些标签。

查看标签下分组的问题和信息标签。他们将向您展示如何构建表。您必须在单个表和类表之间进行选择。单桌可能足以满足您的需求。