- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建这个 MySQL 模型来组织电影收藏。它将管理电影和系列/剧集。每部电影/剧集可能有一个或多个音频流,音频/视频的编解码器可能会有所不同。 (暂时不要介意字幕)
我不是专家,所以我正在寻求建议:
建立关系。很久以前有人告诉我,当模型具有“环”关系时,意味着模型中的关系形成环/环(如图),那么建模可能是错误的。这是错误的吗?
多个引用:表movies_audios
在此表中,fk_movie_id
可能指的是 movies.movie_id
或 episodes.episode_id
。这个可以吗?我的意思是一个主键可以引用不同的表?
更新根据 ABrowne 的回答建模:
“对于一部电视剧来说,你不会有一集是喜剧的”
更新 根据 ABrowne 的回答建模:
最佳答案
要回答您的第一个问题,您提到的“戒指关系”既不正确也不正确,但确实暗示了一种复杂的关系。
在您描述的关系中,电影“可能有”一个或多个编解码器,而一个编解码器“可能有”一集或多集。假设我们的电影是“Ironman”,它可以用 H.264/MPEG-4 和 MPEG-4 ASP 编码。所以这个关系看起来是正确有效的。剧集也可以编码为 H.264/MPEG-4,并且单一编码(分发/媒体,例如 DVD,也许?)可能包含多个剧集。也许我误解了你的“编解码器”,所以如果我错了请纠正。这将在编解码器和剧集之间创建多对多关系,其中缺少一个名为“分发/媒体”的表。
还有 movie_audios,我假设您指的是该剧集/电影所涉及的不同语言音频?
我会考虑规范化你的结构并考虑这样的事情(这只是一个骨架):
video
- video_id
- plot
- fk_series_id
- series_no <- this is the number within a series
- rating
- imdb_ref
- fk_genre_id
- fk_codec_id <- 1 to many relationship between codec and video
video_genre
- fk_video_id
- fk_genre_id
genre
- genre_id
- name
subtitles
- fk_video_id
- fk_language
audio
- audio_id
- fk_video_id
- fk_language_id
language
- language_id
audio_codec
- fk_audio_id
- fk_codec_id
codec
- codec_id
- name
series
- series_id
- series_name
- fk_series_type_id
series_type
- series_type_id
- name
关于您关于当前编解码器关系的多个 id 的问题的第二部分,困难在于您如何查找它。
例如,假设您有 movie_id = 9,而您的 episode_id = 9,这是一部电影还是一集?您可以通过几种方式解决此问题:
1) 把两个外键放到codec上,根据关系存在性用xor判断
2) 您可以在编解码器表上添加“类型”。这将需要您的插入方法以确保它被正确应用
3) 您可以确保您的 ID 在两个表中都是唯一的。一种复杂的方法是在生成 id 时对两者进行查找。您甚至可以在插入时创建一个触发事件,但更简单的方法是在 id 前加上一个字母,这样 m9 就是一部电影,而 e9 就是一集。
----更新发布模型更新----
所以阅读关系和表格,它们似乎是我想象的那样。电影/剧集(我们称之为录音)可以有多种类型,例如浪漫和喜剧。然而,有一种喜剧类型。从这一流派中我们可以正确地找到它相关的所有录音。
一个录音可以有很多音频,也可以有很多字幕。每个音频和每个字幕都是一种语言。音频也有一个音频编解码器。从一种语言或一种编解码器中,我们可以找到它相关的所有录音。
一个录音也有一个视频编解码器,一个电视系列有很多录音。
我会重新考虑您对“电影”的命名,因为它能够更笼统地涵盖所包含的内容,例如视频或录音。
此外,我还会考虑您是否需要列出系列中的电影,例如 Ironman 1-3。这将再次质疑 tv_series 的命名是否更通用。
为了简化您的模型,您可以将编解码器视频和音频合并为一个。如果您需要区分,您可以在其上放置一个类型字段,或者与 codec_type 表建立关系。
关于MySQL 建模 : Relationship normalization & ring issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29990685/
这两种方法似乎都完成了从字符串中删除重音符号的相同工作,但我不确定是否存在一些内部差异,可以使一种方法优于另一种方法 最佳答案 分解处理的不仅仅是重音(在 Unicode 中称为标记),例如韩文音节
我在尝试绘制一些数据时收到此错误: findfont: Font family ['STIXGeneral'] not found. Falling back to DejaVu Sans. Trac
我理解规范化和规范化意味着删除数据表示中任何无意义或模棱两可的部分,将有效相同的数据转换为实际相同的数据。 例如,如果您想获取某些输入数据的哈希值,并且其他任何人对规范的相同数据进行哈希处理都获得相同
#!/usr/local/bin/perl use warnings; use 5.014; use Unicode::Normalize qw(NFD NFC compose); my $strin
我正在尝试将包含“áéíóú”等字符的字符串规范化为“aeiou”以简化搜索。 在对 this question 的回复之后我应该使用 Normalizer 类来完成它。 问题是 normalize
我正在尝试获取外语文本并输出人类可读、文件名安全的等效文本。环顾四周后,似乎最好的选择是 unicodedata.normalize(),但我无法让它工作。我试过将一些答案的确切代码放在这里和其他地方
我是 pymc 和贝叶斯统计的新手。在这里,我试图实现一个极其简单的 pymc 模型,以便与理论结果进行比较。在我的测试用例中,我假设正常先验为 mu~N(20,20) 并且可能性假设为 data~N
我正在编写一个 XPath 表达式,但我修复了一个奇怪的错误,但是以下两个 XPath 表达式之间有什么区别? "//td[starts-with(normalize-space()),'Posted
tf.random.normal 和 tf.distributions.Normal 有什么区别?或者 tf.distributions.Multinomial 和 tf.random.multino
第一步: xcodebuild -project Pods/Pods.xcodeproj build 第二个: xcodebuild archive -project 'test.xcodeproj'
我正在将 Adobe Xd 中的设计转换为 HTML 模板,其中一个元素建议使用以下 css 规则。 top: 149px; left: 54px; width: 463px; height: 2
我正在与另一位数据库设计人员就规范化进行有趣的讨论。在这个例子中,我们有一个 GameTitles 表,每条记录都必须包含游戏发布的年份。他说 2NF 要求所有内容都必须规范化,因此,要符合要求,年份
我正在尝试在 python 中加载文件。如果您运行下面的代码并加载仅包含英文单词的文件,它将加载得很好。 Listado.txt 是一个西类牙语文件,包含以下单词:abacá、abadí、abadía
我一个月前完成了这个游戏,直到今天一切都很好。我在线收到错误: odgovorNormalized = Normalizer.normalize(konResenje, Normalizer.Form
我正在使用gnutls aes加密,这是我的代码 const gnutls_datum_t * key; *key = (const char*)"tZOVP7o/u2vQB+4B/0O0ZqLWvy
我正在尝试训练一个用于面部性别和年龄检测的 cnn 模型。我的训练集包含彩色和灰度的面部图像。我如何标准化这个数据集?或者如何处理混合了灰度和彩色图像的数据集? 最佳答案 请记住,网络只会尝试了解您的
这是 DB 规范化理论中的一个概念: Third normal form is violated when a non-key field is a fact about another non-ke
我正在存储有关棒球统计数据的数据,并希望使用三个表来存储:players、battingStats 和 pitchingStats。就问题而言,每个球员都会有击球统计数据或投球统计数据,但不会两者都有
我现在正在学习推力。我有一个问题:如何用推力进行归一化? 我有一个有效的代码,但我想知道这是否是最佳方法。 struct square { __host__ __device__ float oper
所以我知道我自己可以如何解决这个问题,但是有人知道任何可以处理这个问题的现有库吗? (无论什么语言)? 最佳答案 此 API 仅支持英文,并具有职称规范化:http://api.dataatwork.
我是一名优秀的程序员,十分优秀!