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