Database 如何编写关于设置黑名单的关系数据库表?

Database 如何编写关于设置黑名单的关系数据库表?,database,datatable,Database,Datatable,如果用户想设置自己的黑名单,我该怎么写? 现在我有一张关于这个的表格: Table: user_data ========================== user_id | u_name | ...| ========================== 000001 | user_A | ...| ========================== 000002 | user_B | ...| ========================== 000003 | u

如果用户想设置自己的黑名单,我该怎么写? 现在我有一张关于这个的表格:

Table: user_data
==========================
user_id | u_name   | ...|
==========================
000001 |  user_A   | ...|
==========================
000002 |  user_B   | ...|
==========================
000003 |  user_C   | ...|
==========================

您可以创建一个黑名单表,其中user_id作为user_数据的外键。 例如:

Table : blacklist
blacklist_id: primary key
user_id: foreign key
blocked_user_id: the user is blocked by this user (foreign key)

| blacklist_ID | user_id | blocked_user_ID
+--------------+---------+----------------+
| 01           | 00001   |   00002        |
| 02           | 00001   |   00003        |
| 03           | 00001   |   00004        |
| 04           | 00002   |   00001        |
| 05           | 00002   |   00003        |
| 06           | 00002   |   00004        |
从黑名单中选择blocked_user_ID,其中user_ID='00001'
将返回一个列表:

00002
00003
00004

对不起,我是这些方面的新手,我有一个问题,如果用户B和用户C也需要设置黑名单,并且用户a、用户B、用户C都有自己的黑名单,那么我也可以使用你的方法?谢谢你的回答!是的,backlist表保留所有用户的backlist,并通过外键用户ID进行区分。此表中可能有重复的用户ID。每当您需要访问认证用户的黑名单时,您都可以使用用户ID查询该表:
Select*from blacjlist b其中b.user\u ID=12345
。我知道了,非常感谢。我还有一个问题,像这样的一个表中是否存在两个属性:table:blacklist[user|id | blacklist|event | user|id]非常感谢您的帮助!为什么有2个用户id?不允许有两个相同的列名。您想做什么?我希望一个用户id是设置黑名单的用户,另一个用户id是将被阻止的用户,我希望此用户id与用户数据表建立关系。所以这不是一种方式?