首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电影数据库-演员/女演员/标签的存储?

电影数据库-演员/女演员/标签的存储?
EN

Stack Overflow用户
提问于 2010-12-21 06:06:48
回答 4查看 1.6K关注 0票数 3

创建一个电影数据库,我不喜欢给每个男演员/女演员标记自己的行的想法,就好像总共有1000万部电影,每个人至少有20-30人的演员阵容,我们将在表中有2-3亿行。

而且它变得更加复杂,每部电影的标签可以是无限的。那么如何最好地存储这3个项目呢?理想情况下,可以将它们建模为多对多,但仍然会有数亿行。关于存储这些内容有什么更好的建议吗?我正在使用MySQL。

我会将其全部转储在一个文本文件中,但我需要链接演员之间的电影,并做一些分析,并允许用户评级演员找到电影的标签等,所以需要使用一个数据库。

EN

回答 4

Stack Overflow用户

发布于 2010-12-21 06:14:21

1000万部电影看起来相当雄心勃勃。IMDb's current statistics显示,他们只有不到180万个标题和大约390万人。

话虽如此,我认为创建一个标题表、一个参与者表和一个连接表来解决这两者之间的多对多关系没有问题。标签也是如此。

票数 2
EN

Stack Overflow用户

发布于 2010-12-21 06:14:51

这听起来可能有点premature optimization。您可以将所有参与者反规范化到Movie表中的某种TEXT列中,但是性能+搜索将会受到影响,并且会失去关系数据的所有好处。

建议保留规范化的模式,正如您最初所想的那样:

代码语言:javascript
复制
Movie (ID)
Actor (ID)
Tag (ID) --horror, comedy, etc.

MovieActor (MovieID, ActorID)
MovieTag (MovieID, TagID)

在测试环境中,

  • 按照正常方式在关联实体上创建索引:MovieActorMovieTag.
  • Load一些虚拟数据。1000万部电影,1亿个演员,100万个标签。如果您的性能指标需要更多的performance.

,请为每个性能指标创建关联条目,如required.

  • Baseline和performance test.

  • Horizontal partitioning (sharding)

不管电影的数量,或者数据是否是DNA序列:实现一个设计,测试它,根据你的需求(用户接受度,SLA等)来判断它的性能

票数 1
EN

Stack Overflow用户

发布于 2010-12-21 06:14:40

您对数百万行的反感的原因是什么?感知到的性能问题?

它将在某个地方拥有数以亿计的关系。你必须捕捉演员和电影之间的映射,就像你说的,有2-3亿个这样的映射(尽管我不相信有1000万部电影存在?)

如果您确实需要,您可以(例如)将一部电影的演员If打包为多列(或一列),但这将使搜索变得不愉快。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4494439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档