【发布时间】:2010-12-20 22:06:48
【问题描述】:
创建一个电影数据库,我不喜欢给每个演员/女演员和每个标签自己的行的想法,好像总共有 1000 万个电影,每个有至少 20-30 人的演员,我们将有 200-表中有 3 亿行。
而且标签变得更加复杂,每部电影可以不受限制。那么如何最好地存储这 3 个项目呢?理想情况下,这些可以建模为多对多,但仍然会有数亿行。关于存储这些有什么更好的建议吗?我正在使用 MySQL。
我会将其全部转储到一个文本文件中,但我需要在电影之间链接演员并进行一些分析,并允许用户对演员进行评分,按标签查找电影等,因此需要使用数据库。
【问题讨论】:
-
我会说你不能真正绕过多对多,它甚至听起来是最有效的存储方式。我将坐在这里,看着真正的 DBA 用他们的见解启发我们。
-
我认为您正在担心一个您没有遇到的问题。您有一个可以巧妙地映射到关系模型的域,其中 RDBM 具有有助于提高性能的功能(索引、分区)。按照所有答案所暗示的设计思路构建事物,并与您的 DBA 就优化它的方法进行交流如果证明有必要
-
可悲的是,我是我自己的 DBA!所以我一直在学习。但是,是的,我会尝试人们所说的话,并使用大约 1000 万个样本数据集检查性能,然后再反馈它是如何工作的。
-
@dave 你最终是如何解决这个问题的?