用户可以创建两种配置文件类型之一,例如自由职业者和公司。此配置文件类型有几个常见和几个独特的字段。公司可能有许多用户作为工人。
更清楚一点:用户 HAS_ONE 个人资料(自由职业者或公司);公司 HAS_MANY 用户;
关于这种情况的最佳数据库设计有什么建议吗?
用户可以创建两种配置文件类型之一,例如自由职业者和公司。此配置文件类型有几个常见和几个独特的字段。公司可能有许多用户作为工人。
更清楚一点:用户 HAS_ONE 个人资料(自由职业者或公司);公司 HAS_MANY 用户;
关于这种情况的最佳数据库设计有什么建议吗?
一个数据库表,其外键指向配置文件类型ProfileTypeID
值,可能包括但不限于以下内容:
这一字段将帮助您确定哪些附加属性与用户相关联。其余的都是简单的 UI。
是传承。当您面对这种情况时,您有 3 个选择。
第一个选择是一张供公司和自由职业者使用的大桌子,上面有一张typeid
桌子可以知道它是公司还是自由职业者,但在你的情况下,你最终会得到很多nulls
.
第二个选项是公司和自由职业者的 2 个单独的表以及用户表中的公共属性。然后你必须typeId
在你的用户表中添加才能知道它是公司还是自由职业者
第三种选择是为用户、自由职业者和公司制作一张大桌子,但这将是空值最多的选项。
在您的情况下,最好的选择是第二种选择,因为您有几个常见的和几个独特的字段。