我的 PostgreSQL 数据库中有三个表:
User - Contains a username and password
MaleProfile - Contains information related to each male user
FemaleProfile - Contains information related to each female user
最初,我没有单独的 MaleProfile 和 FemaleProfile 表,而是有一个 Profile 表。在那种情况下,我会在 User 表和 Profile 表之间建立一对一的关系。但我已经决定我真的需要单独的男性和女性个人资料表。在这种新情况下,User 表中的每条记录都必须映射到 MaleProfile 表或 FemaleProfile 表(但不能同时映射两者)中的一个且只有一个记录。从另一个方向看,MaleProfile 表中的每条记录都映射到 User 表中的一条且只有一条记录。对于每个 FemaleProfile 记录也是如此。
严格来说,User 表和每个 profile 表之间的关系是一对零或一。但是这些关系本质上只是一对多关系,在这种情况下,“多”意味着零或一(但不超过一)?如果是这样,我是否可以通过在 MaleProfile 表和 FemaleProfile 表中创建一个外键列来表达它们,就像您将任何一对多关系一样,每个表都指向 User 表中的 PK 列?我是否需要向配置文件表添加任何其他约束以保持参照完整性?
谢谢你。