【发布时间】:2013-11-04 14:31:08
【问题描述】:
我的数据库中有一个用户系统,我想添加添加朋友的可能性。 用户必须能够:
- 在请愿书中发送消息
- 屏蔽用户
- 为朋友用户设置别名。
所以我虽然这张表:
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 设置的别名(可选)
- status :如果为 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,因此结果仅包含我的朋友用户。但是要获得别名,我不知道。可能有更多的桌子?
我想我设计错了...您有什么提示或建议吗?可以举个例子吗?
如果您需要更多信息,请告诉我,我会编辑帖子。
【问题讨论】:
-
alias_user1和alias_user2有什么区别? -
谢谢!对不起,我已经编辑了。看看这个! :) 但是,我认为我需要更多表,至少对于用户别名而言。
-
你想用别名做什么?展示下?还是用它搜索?
标签: mysql sql database database-design data-structures