我有一个数据库设计,但在处理两个表时遇到了问题。我有一个用户表和一个属性表。该属性表可仅具有0,1,或2个用户,让我们称他们的所有者和租户,并且仅在每个中的一个(每属性),和一个用户可以是雇主或在许多房客属性。
因此,根据案例,这是我的两个选择:
- 在Properties表中有两个外键(因为一个属性引用的最大用户数是 2 而不是 N),称为 owner_id 和tenant_id,它们引用了Users表。
- 有一个 N:M 中间表,包含 user_id 和 property_id,以及指示该属性中用户类型的另一列(比如布尔值 1 = 所有者,0 = 租户)。
哪个是最好的设计选择?
说明:
- 一个用户有一个姓名和电子邮件,以及财产一条街以及其作为属性数。
- 一个用户可能只是在业主或租客财产,而不是两个,因为所有者意味着他拥有的财产(阉,他住在这里与否),与租客是另一个用户实际上生活在那里的,所以需要有一个老板在添加租户之前。
- 一个属性可能没有用户分配。