使用 PHP 和 MySQL 构建一个需要存储大量关于用户的属性(例如他们的出生日期、身高、体重等)的站点,这非常简单(单个表,许多属性(几乎所有属性都是必需的))。
但是,系统还需要存储其他信息,比如他们的口语、乐器能力等。总的来说,他们有十几个这样的特征。默认情况下,我假设创建一个单独的表(可能称为语言),然后创建一个具有复合 ID(user_id,language_id)的链接表。
我预见的问题是当访问者尝试使用这些标准搜索用户时。我们希望使用的数据集在发布时将拥有超过 15,000 名用户,主要功能将是搜索和优化用户。这意味着每天有数百个查询,并且使用包含十几个或更多 JOIN 的查询的前景并不吸引人。
所以我的问题是,有没有更有效的替代方案?我正在考虑的一种方法是将 M2M 值作为 ID 的 CSV 存储在用户表中,然后对其运行 LIKE 查询。我知道 LIKE 不是最好的,但它比加入更好吗?
任何可能的解决方案将不胜感激。