如何存储两个客户相关?
How to store that two clients are related?
假设我有一个简单的 client
table,列 id
和 name
填充了以下行:
ID | NAME
01 | John
02 | Mary
03 | Smith
04 | George
05 | Allan
我想在我的数据库中存储 John 是 Mary、Smith 的朋友和 艾伦.
如何为 link 这个客户创建关系 table?
目前,我使用 table 比如:
CLIENT_A | CLIENT_B
01 | 02
01 | 03
01 | 05
具有唯一性(client_a, client_b)
但这也允许我有一个重复的关系,具有相反的列值。
CLIENT_A | CLIENT_B
02 | 01
03 | 01
05 | 01
01 | 02
01 | 03
01 | 05
所以我需要在 PHP 查询两个方向以找到我的客户关系并避免重复条目。
有更好的方法吗?
正如 @halfer 所说,一个好的方法是在创建关系之前检查它。
即当您尝试插入关系时,请检查它是否不存在。
是的,它会让你的保存速度变慢,但会保证你的一致性。
假设我有一个简单的 client
table,列 id
和 name
填充了以下行:
ID | NAME
01 | John
02 | Mary
03 | Smith
04 | George
05 | Allan
我想在我的数据库中存储 John 是 Mary、Smith 的朋友和 艾伦.
如何为 link 这个客户创建关系 table?
目前,我使用 table 比如:
CLIENT_A | CLIENT_B
01 | 02
01 | 03
01 | 05
具有唯一性(client_a, client_b)
但这也允许我有一个重复的关系,具有相反的列值。
CLIENT_A | CLIENT_B
02 | 01
03 | 01
05 | 01
01 | 02
01 | 03
01 | 05
所以我需要在 PHP 查询两个方向以找到我的客户关系并避免重复条目。
有更好的方法吗?
正如 @halfer 所说,一个好的方法是在创建关系之前检查它。
即当您尝试插入关系时,请检查它是否不存在。
是的,它会让你的保存速度变慢,但会保证你的一致性。