我有一个关于数据库设计的问题 - 最好的方法是什么以及如何做。我通常就是这样做的。 ^^
简单示例:我有 3 个表
用户表
user_id name
2 Name1
3 Name2
设施表
facility_id facility_name user_id
13 facility1 2
14 facility2 3
地板 table (这就是我所做的 我在这里添加用户 ID ^_^ )
floor_id floor_name facility_id ( user_id )
5 floor1 13 2
6 floor2 14 3
因此,在这里您不必将用户连接添加到楼层表,因为您可以将其连接到连接楼层表的设施。
但我还是倾向于添加它以方便查询..这是一个不好的做法吗?
最佳答案
我可以看到,在 Floor 表中添加 user_id
非常方便,您可以对 Users 表进行单一联接。然而,存在不一致的可能性。假设有人手动输入数据库:
floor_id floor_name facility_id ( user_id )
5 floor1 13 2
6 floor2 14 2
现在,如果您通过设施到达用户,我们会得到用户 3,如果我们直接从楼层到达用户,我们会得到用户 2。
可以通过指定设施和楼层之间的外键关系位于两列(user_id,facility_id)
来强制执行一致性。您仍然可以将楼层加入到用户,但甚至无法手动在楼层中输入不一致的 (facility_id, user_id)
,该对必须与设施 (id, user_id)< 中的现有行相匹配
.
关于mysql - 数据库连接-数据库设计-父级-子级-子级的子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58194416/