我有三个表,A,B和C. A有很多B,B有很多C.设计主键和这两者之间关系的最佳方法是什么。很抱歉问一个设计问题,但我不知道是否使用
非常感谢。
答案 0 :(得分:3)
选项(3)听起来最自然:
A: { id, *, *, ... };
B: { id, a_id references(A.id), *, *, ... }
C: { id, b_id references(B.id), *, *, ... }
查询:
SELECT ... FROM A JOIN B ON (A.id = B.a_id) JOIN C ON (B.id = C.b_id);
始终使数据库模型成为数据中的逻辑关系,而不是反过来!
答案 1 :(得分:2)
我会用三个。在1:多关系中不需要额外的表格。多方持有指向单侧的外键。
答案 2 :(得分:2)
选择3是要走的路。
A {a_pk, ...}
B {b_pk, ..., a_pk_as_fk}
C {c_pk, ..., b_pk_as_fk}