繁体   English   中英

数据库设计确保一对一关系

[英]Database design ensure one to one relationship

我试图了解数据库设计中类表继承的局限性。 例如,如果我有这样的架构,如何确保学校字段表或非营利性表中的多行没有引用相同的联系人ID

Contact
--------
id - PK 
fname - String
lname - String
email - String

School Field
--------------
id - PK
contact_id - FK
notes - String

Non Profit Field
-----------------
id - PK
contact_id - FK
donation - unsigned int

我建议使用其他方法。

Entity
-------------- 
id - PK 
Field_Type_ID - FK 
contact_id - FK 
notes - String
donation - unsigned int (nullable)

Contact
-------------- 
id - PK 
fname- String
lname- String
email- String

Field_Type
-------------- 
id - PK 
Description- FK 
notes - String

这样,如果最终获得更多“字段”类型,则无需添加更多表。 您只需将新记录添加到Field_Type表中。 然后,要强制执行所需的行为,请在Entity上添加一个唯一约束,该约束同时查看contactID和FieldTypeID。 这样可以确保每个联系人只能一次链接到一个字段类型。

https://www.w3schools.com/sqL/sql_unique.asp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM