【发布时间】:2017-03-05 09:16:29
【问题描述】:
示例:用户可以输入他的爱好,例如“高尔夫、足球、网球”。 我想列出所有具有相同爱好的用户(或仅列出其中一个)。
我的方法: 数据库中名为“爱好”的字段,并用所有爱好填充它,用逗号分隔,如上。然后我用 php 获取这些数据,填充一个数组并循环匹配用户。但似乎这是非常低效的方式。
我曾想过将爱好保存在数据库中的单独列中,但后来我必须设置一个最大限制,但仍然不确定如何匹配 50 个不同的列。
有人可以给我一些正确方向的建议吗?
【问题讨论】:
-
对爱好使用归一化,否则无法正确匹配
-
在逗号分隔的字段中存储多个值不是表示数据的 SQL 方式。为每个用户和爱好组合使用带有单独行的表格。