我想创建一个朋友系统(类似于facebook)。
我想在MySql中保存关系数据,但我不知道哪种方式更好:
将everysingle关系保存为单个条目,例如:
id | people1 | people2
1 | john | maria
2 | john | fred
3 | maria | fred
(我宣布所有这3个人之间的关系)
保存所有人姓名并列出他的朋友:
id | people | friends
1 | fred | mary, john
2 | mary | john, fred
3 | john | fred, mary
或许有更好的方法?
答案 0 :(得分:11)
不,亲爱的,
你只需要一张桌子来建立朋友关系。结构如下我已经使用
id(主键)| my_id(整数记录的用户ID)| friend_id(他将从登录用户收到朋友请求的另一个用户的整数用户ID)
就像我们在users表中有两个用户一样,我们有两个条目让两个用户彼此建立关系
id | name | age
1 | vipan | 12
2 | karan | 12
然后输入
id | my_id | friend_id
1 1 2
2 2 1
请不要在任何情况下投票,但我在我的网站使用此表结构,这是在joomsocial中使用的相同结构这是最好的表结构我认为所以我使用它,请不要使用逗号分隔值在表格中,他们会在某些情况下在联接和关系中出现问题
请在以下的职位链接
看4号评语答案 1 :(得分:4)
第一个是最好的,无疑是因为第二个不尊重first normal form。
您必须避免在同一列中使用多个值,因为编辑
会非常痛苦Here是关于数据库规范化的链接。大多数时候,我们尊重第三种正常形式,因为它是规范化和性能之间的良好折衷。
另外,像Randy说的那样,你必须使用ID,这样你才能用外键链接它们。