我有一个场景,我有两个表,person_natural
并且person_legal
.
情况1:
我有员工、农民、客户和供应商。我是否应该在每个表(person_natural
或person_legal
)中都有一个枚举来指示人员类型(例如,在person_natural
我将调用一个列type
来说明它是雇员、农民还是客户),还是应该为每种类型创建一个表person 并使用 FK 将其链接到主表?
我问这个是因为员工和客户有额外的列,例如员工有工资,客户有信用额度。如果我将这些列放在主表中,则对于某种类型的人,该列将始终为 NULL。
例子:
person_natural
employee -> FK person_natural
farmer -> FK person_natural
customer -> FK person_natural
或者
person_natural -> type_person (employee, farmer, customer)
案例2:
我有一个附件表和一个地址表。如果我有表person_natural
和person_legal
,我通常必须为每个表创建一个连接表:
person_natural
person_natural_attachment
person_natural_address
person_legal
person_legal_attachment
person_legal_address
在这种情况下,创建一个名为 的表person
并将 FK 保留在person_natural
and中是否正确(尤其是在数据库规范化之后) person_legal
,这样就不必创建额外的连接表?
person
person_natural -> FK person
person_legal -> FK person
person_attachment
person_address
在这种情况下,如果我有一个,我可以通过加入,然后person_natural
加入表格来轻松访问附件。person
person_attachment
这两种情况的推荐做法是什么?我愿意接受任何建议或推荐。感谢您的时间。