我正在使用Flask-SQLAlchemy,但我想这个问题涉及不同的数据库实现平台。
假设我有两个表模型结构为:
User
(字段:user_id
为PRIMARY KEY,username
,email
,password
)和
UserDetails
(包含字段:f_name
,l_name
,dob
,gender
,address
,contact
,{{ 1}}和bio
作为FOREIGN KEY)。
将来自user_id
表的user_id
作为PRIMARY KEY进行是否可以,因为它是同一个表上唯一唯一列的FOREIGN KEY,而不必创建单独的{{1为此目的的字段?
答案 0 :(得分:2)
总之 - 是的。使用与主键和外键相同的字段来创建1:0..1关系。
用户可能只有一条详细信息记录,但不能有多条详细信息记录,并且您无法获得不存在的用户或与用户无关的详细信息(即null
userId)的详细信息。
如果您有许多没有细节的用户(因此将细节分成不同的表格是有意义的),或者如果细节非常繁重并且您不希望它们膨胀,那么这种设计是有意义的用户表的存储,需要许多快速查询。