如果站点中的每个用户都可以输入他们键入的项目的逗号分隔列表(而不是来自预先确定的列表!),我们应该如何在 MySQL 中为每个用户存储该列表,以便项目可以在用户之间匹配相同的项目?
我知道我们不应该将他们输入的逗号分隔字符串作为 a
VARCHAR
存储在数据库中,那么应该如何存储呢?ItemsList
是否应该创建一个每行都是一个新表UserID -> ItemName
(例如,如果用户 ID 101输入“ Matches, Gun, Alcohol ”,我们将向ItemsList
as添加 3 行101 -> 'Matches', 101 -> Gun, 101 -> Alcohol
)?如果是这样,
PRIMARY KEY
该表应该使用什么?应该设置什么
indexes
来尽可能快地检索和匹配项目?最后,应该使用什么查询来查找与另一个用户至少有一个共同项目的所有用户?