- 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/
我有这样的结构: class User(DeclarativeBase): ... teamMemberships = orm.relationship("TeamXREF",backre
我需要提取值 11,12 和 1,即 = 之后的值。 我正在尝试执行以下操作 Matcher m = Pattern.compile("\\((.*?)\\)").matcher(s); while
有三个表/模型: 客户: id - 客户端 品牌: id - 品牌 品牌型号: id - 型号 - Brand_id 品牌模型客户: id - Brandmodel_id - client_id 我希
在我的应用程序核心数据模型中,我有工作表和文本实体。工作表实体可以有两个文本:privacyNotes 和 termsOfUse。 都是文本类型。因此,在 XCode 数据建模器中,我在带有文本目标的
在现有的网络应用程序 (PHP/MySQL) 上工作,我得出了这一点:我有 2 个表存储名称和类型 ID。它们之间的关系是 NN 我之间有另一个表。 (见图) 我有一个名为“category”的最后一
当我创建一对一关系迁移时,laravel 创建一对多关系。 PHP 7.1 和 MySQL 5.7 模型是:角色和用户。 角色: public function user() { return
我有一个巨大的痛苦的继承表,其中包含几百万条记录,我无法有效地查询。表格看起来有点像这样: id | submissionId | key | value ------------------
我有两个实体,相册和照片,它们之间存在多对多关系。一切正常。我想要的是添加一个关系属性,即除了 album_id 和 photo_id 之外的映射的额外属性,例如添加照片的日期时间或表明照片在该相册中
过去几天我一直在努力解决我的问题,遗憾的是没有任何结果。我已经在这里阅读了无数关于这个主题的帖子,但我一直遇到同样的错误。 “'字段列表'中的未知列'Extent1.foo_id'”......我做错
我正在尝试映射两个实体之间的多对多关系,但我需要使用多个属性来装饰该实体 - 请参见下图: Reads 是我在这种情况下的关系表 - 我在上面添加了一个标识列以避免使用复合键,但这里有值(value)
我正在使用 Spring Data/Neo4j 和 REST API 开发一个 Web 应用程序。 我想知道我是否可以创建一种关系并以另一种关系结束,如下所示: @RelationshipEntity
您好,我在进行 Laravel 查询时遇到问题 模型区域 class Region extends Model { protected $table = 'regions'; prot
考虑以下场景: 我的 Laravel 应用程序中有几个实体,如下所示: 发布 页面 图片 视频 以上所有实体都可以有CustomFieldValue,这是另一个实体。 custom_field_val
乍一看,它们似乎在做同样的事情:定义一对多关系 那么你为什么要选择一个或另一个? 最佳答案 EmbedsMany - 嵌入另一个模型的许多实例的模型;例如,一个客户可以有多个电子邮件地址,每个电子邮件
我是 Neo4j 的新手,只是为了深入学习。我有一个小小的疑问,例如, 如果我在空间中创建了两个节点并提供了这两个节点之间的关系以及系统时间(知道它们在什么时间成为 friend )。 所以现在我的问
我想知道是否有人可以帮助我。 这就是我需要做的:将语言表的 ID 拉入新表中,并使其之间具有唯一的关系。就像节点的公式 n(n-1) 一样。 我尝试使用笛卡尔积,但它不起作用,因为列 a = 1 和列
如何识别关系是三元关系还是聚合关系? 例如:一名球员在他参加的比赛中获得奖励。如果实体是玩家、比赛和奖励,这是三元还是聚合? 最佳答案 一个讲师给我的答案,它是一个三元关系,因为涉及到 3 个贡献实体
实体关系是否有标准(非图形)表示法? 现在我正在使用我自己的 janky 符号: 用户 >> 照片, (1-many) 用户 > 个人资料,(1-1 hasOne) 个人资料 标签,(多对多) 最佳
假设有两个实体,名为 Employee 和 Campaign。一名员工可以参与多个事件。一个事件可以有很多员工。我已经知道这是一个多对多的关系。 绘制ER图时(用陈符号),这种关系用菱形来表示。但是对
以下ER图中的双线是表示完全参与还是递归关系? 谁能告诉我两者的符号区别? 最佳答案 总参与人数:集合中的每个实体都涉及关系的某个关联(或元组)。 递归关系:与自身相关的实体集。 在递归关系中最常见的
我是一名优秀的程序员,十分优秀!