Maison > Questions et réponses > le corps du texte
项目中设计好友关系,存储在一张表里面
现有用户id为2和3加为好友
好友关系表:
id | user_id | friend_id |
---|---|---|
1 | 2 | 3 |
2 | 3 | 2 |
这两条数据是否是一样的?还是应该存为一条数据?
后续可能还会有权限相关设计
如:
id | user_id | friend_id | 是否允许查看自己的动态 | 是否查看对方的动态消息 |
---|---|---|---|---|
1 | 2 | 3 | ||
2 | 3 | 2 |
这种情况是存在一张表里面,还是将权限和好友关系分开,单独存一张权限表
迷茫2017-04-18 10:35:38
Vous pouvez enregistrer 2 entrées dans la table des relations entre amis. Après tout, il ne semble pas intuitif de sauvegarder une entrée. Vous pouvez enregistrer 2 entrées pour interroger l'ami dont l'ID utilisateur est 2 select friend_id from table where user_id = 2
. C'est plus difficile de sauvegarder 1 élément, select friend_id from table where user_id = 2 union select user_id from table where friend_id=2
. Séparons les tables d'autorisations. La table de relations gère les relations et la table d'autorisations gère les autorisations. Ne le faites pas ensemble, car vous devrez peut-être ajouter d'autres autorisations à l'avenir, et vous rencontrerez certainement des problèmes si vous les mettez dans une seule table. Au moins, ce ne serait pas si gênant si nous nous séparions. Les modifications n'affecteront pas la table de relation
PHPz2017-04-18 10:35:38
En fonction des besoins de l'entreprise, je pense personnellement qu'il vaut mieux être plus détaillé
ringa_lee2017-04-18 10:35:38
Je pense que ces deux données sont différentes en termes des besoins ultérieurs que vous avez mentionnés. L'utilisateur avec l'ID 1 doit avoir plus d'un ami avec l'ID 2
De plus, d'autres besoins seront réalisés plus tard. c'est bien pour vous d'écrire ensemble
天蓬老师2017-04-18 10:35:38
Deux articles.
1. L’autre personne est votre ami, mais vous n’êtes peut-être pas celui de l’autre personne.
2. Les paramètres de l’autre partie pour vous peuvent ne pas être les mêmes que vos paramètres pour l’autre partie.
Si vous avez ces deux besoins. Deux, il faut le contraire, un.
伊谢尔伦2017-04-18 10:35:38
Mon expérience est que 2 est mieux. Premièrement : vous êtes mon ami, mais je ne suis peut-être pas votre ami. Deuxièmement : c’est très pratique de vérifier ses amis de cette façon, mais il est difficile de vérifier un seul lien.
De plus, envisageons l'expansion. Si nous changeons les amis en liste noire, alors en utilisant 2 éléments, elle peut être facilement étendue. Après tout, si je vous bloque, vous ne pourrez pas me bloquer.
伊谢尔伦2017-04-18 10:35:38
Deux, semblables à suivre. Si vous le suivez, il ne vous suivra peut-être pas