mysql - 存储大于 64 的 SET 的最佳方式

标签 mysql database database-design

我的网站有一个电影数据库,我正在重新设计它以提高它的效率。

movies 表有一个名为countries 的字段。此时,值存储在 varchar 中,使用 csv。例如:

Spain,France,Germany

这是非常低效的。例如,很难选择来自法国的所有电影。

我不能使用 set 因为有超过 64 个不同的国家。 我可以创建一个国家表和另一个将 id_countryid_movie 链接起来的表。但随后我需要创建另一个 join 来获取电影数据(就像我对 Actor 或导演所做的那样)。

有什么建议吗?哪种方式可能是存储国家/地区信息的最佳方式?

最佳答案

在我看来,SET(非规范化解决方案)使事情变得更加复杂。

使用 JOIN 并不符合“复杂性”的标准,它是数据库的用途和擅长的。

如果您需要维护元素的定义顺序,则必须向该查找表添加一个额外的“排序”列。

关于mysql - 存储大于 64 的 SET 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10848780/

相关文章:

sql - 实现具有替代名称的人员数据库并将所有名称链接在一起

mysql - 通过不断的编辑维护订单数据的完整性

python - 使用python从Mysql表中查询和检索数据

c# - 使用 OUT 参数调用 MySQL 过程

c# - 从代码进行外部网站搜索

python - 在数据库中具有类似实例的行为

php - 必须捕获所有数量最多的产品

MySQL多表关系查询

mysql - 事实表的最大列数

c# - 从 C# Winforms 更新表不工作