我的数据库中有一个用户系统,我想添加添加朋友的可能性。用户必须能够:
- 在请愿书中发送消息
- 阻止用户
- 为朋友用户设置别名。
所以我虽然这张表:
id_friend
id_user1
id_user2
id_user_sender
alias_user1 NULL
alias user2 NULL
status
message NULL
date_sent
date_accepted NULL
我将解释每一列:
- id_friend : 表的PK。
- id_user1 : 用户表的 FK
- id_user2 : 用户表的 FK
- id_user_sender : 发送请求的 id_user
- alias_user1 NULL:id_user1给id_user2设置的别名(可选)
- alias user2 NULL:id_user2给id_user1设置的别名(可选)
- 状态:如果 0 友谊垂饰。如果有 1 个朋友。如果 2 友谊结块。
- message NULL:如果 status = 0 则可以包含发送者设置的消息
- date_sent : 发件人发送请愿书的日期
- date_accepted NULL:user_requested 接受友谊的日期。
然后要获得特定用户的所有朋友,我会这样做:
select id_user1, id_user2 from friends where id_user1 = $my_user_id or id_user2 = $my_user_id and status = 1;
然后我会丢弃等于我的 id_users,所以结果只包含我的朋友的用户。但是要获得别名,我不知道。可能有更多的桌子?
我想我设计错了......你有什么提示或建议吗?你能举个例子吗?
如果您需要更多信息,请告诉我,我会编辑帖子。