gpt4 book ai didi

database - 一个字段可以同时充当同一张表中的外键和主键吗?

转载 作者:搜寻专家 更新时间:2023-10-30 20:26:46 25 4
gpt4 key购买 nike

我正在使用 Flask-SQLAlchemy,但我想这个问题跨越了不同的数据库实现平台。

假设我有两个表模型结构如下:

用户(包含字段:user_id 作为 PRIMARY KEY,usernameemailpassword) 和

UserDetails(包含字段:f_namel_namedobgender , address, contact, bio and user_id as FOREIGN KEY).

UserDetails 表中的 user_id 作为 PRIMARY KEY 是否可以,就像在同一个表上的 FOREIGN KEY 是唯一的唯一列一样,而不必为此目的创建一个单独的 user_details_id 字段?

最佳答案

简而言之 - 是的。具有与主键和外键相同的字段用于创建 1:0..1 关系。

一个用户可以有一个详细记录,但不能有多个详细记录,并且你不能有不存在的用户的详细信息或与用户无关的详细信息(即 null用户 ID)。

如果您有很多没有详细信息的用户(因此将详细信息分离到不同的表是有意义的),或者如果详细信息非常繁重并且您不希望它们膨胀用户表的,则这种设计是有意义的存储,其中需要许多快速查询。

关于database - 一个字段可以同时充当同一张表中的外键和主键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30329671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com