问题描述
假设我们有一个包含 users.id 和一些数据的“users”表。 我们正在运行一些脚本来识别用户是否与另一个用户重复。没有与其他帐户相关的“主用户”这样的东西。
一旦确定,我们希望以一种简单的方式保存这些用户属于彼此,这将使我们将来可以轻松地对这些用户 ID 运行查询。如“选择用户 X 的所有重复用户”。
我们考虑了一个新表:
duplicate_users
- id
- user_id
- key
对于“users”的每个新条目,我们还将使用随机密钥在“duplicate_users”中创建一个条目。如果用户被识别为重复,他们的键将更新为相同的新值。
这是个好主意吗?这样做的最佳数据库结构是什么?
解决方法
你可以这样做:
Users table
- usersid
- username
RelatedUsers table
- relatedusersid
- usersid: foreign key to one of the usersid in the users table
- usersid: foreign key to one of the usersid in the users table
所以你有一个相关用户表。
例如:
Users
- 1: Joe
- 2: Jack
- 3: John
RelatedUsers
- 1: 1,2
- 2: 1,3
所以我们知道杰克和约翰与乔有亲戚关系。