我想以一个家庭为例,但是我忘了父母给孩子有两个对象(丈夫和妻子),所以它增加了不必要的工作,所以我只是选择了一个简单的故事数据库。
我想最终消除混乱,我的所有研究都使我怀疑自己,所以这是当第三方建议作为一种保证时,因为你们所有人都可能比我在这一领域更有经验,所以我很谦逊您的意见。
这是一个简单的布局:所有主键ID都是自动递增的
第一个设计
因此,在上表中,以我有限的理解,它与许多章中的故事是一对多的关系。
第二设计
我在第二个设计中做对了吗?还是我误解了某些东西并使事情变得更加复杂?
如果我的第二个设计是正确的,那我该如何对所有三个表执行CRUD操作?
举个例子:如果创建一个故事,那么您还必须至少创建1章,然后再添加更多内容。
->在故事表(插入)中创建故事行
->在章节表(插入)中创建章节行
->在story_chapter表(插入)中创建story_chapter行
以上步骤正确吗?由于在story_chapter表中story_id和Chapter_id都是外键,因此创建时两者都不能为空,因此我必须先创建故事行,然后再创建章行,然后才能为中间人创建行? story_chapter表是否更依赖于章表?如果某个章节不存在(如果用户在创建后删除了所有章节),那么我还必须删除story_chapter中与已删除章节相关的行,因此可以存在一个故事行,但其他两个行不是必须的,但是如果某个章节确实存在,那么story和story_chapter也必须存在吗?
P.S。以后我将以此为基础进行所有其他表格设计和操作。
编辑:
用户与故事表的关系(我基于此建立了我的故事-章节关系)。
1个用户/作者可能有很多故事。
答案 0 :(得分:1)
在第一个示例中,任何故事都有很多章节,但是每个章节都只有一个故事。
在第二个示例中,任何故事都有很多章节,每个章节都可以出现在每个故事中。这意味着您可以拥有以下内容:
指环王
1.1 LOTR-第1章
1.2 LOTR-第2章
50种灰色阴影
2.1 50种灰色阴影-第1章
1.2 LOTR-第2章
|-----------------------| |------------------------| |----------------------------|
| story_chapter | | story | | chapter |
|-----------------------| |------------------------| |----------------------------|
| story_id | chapter_id | | story_id | story_title | | chapter_id | chapter_title |
| 1 | 1 | | 1 | LOTR | | 1 | Chapter 1 |
| 1 | 2 | | 2 | 50 Shades...| | 2 | Chapter 2 |
| 2 | 3 | |------------------------| | 3 | Chapter 1 |
| 2 | 2 | |----------------------------|
|-----------------------|
我认为这样做不是一个好主意,您应该坚持第一个示例。
关于您对第二个示例的使用方式的疑问:
story_chapter
行,而章节和故事之间的链接将消失,但行不会消失