【发布时间】:2012-02-11 13:12:33
【问题描述】:
一个菜鸟问题。我正在整理我的第一个数据库并遇到以下设计问题:我有一个定义一本书的类(例如它的标题)和一个定义页面的类(例如它的设计)。
课本的表格如下所示:
Title | PAGE1 | PAGE2 | PAGE3
Book-One | SAMPLE1-UUID | SAMPLE2-UUID | SAMPLE3-UUID
Book-Two | SAMPLE4-UUID | SAMPLE5-UUID | SAMPLE6-UUID
班级页面的表格:
UUID | FONT | CONTENTS etc.
SAMPLE1-UUID | Times | Example
SAMPLE2-UUID | Arial | Example Two
SAMPLE3-UUID | Verdena | Example Three
现在,由于每个页面都是独一无二的,并且不能在另一本书中重复使用,因此我不能对 Pages 使用多对多关系。我可以使用外键来链接这两个表,即将 Books 表的 SAMPLE1-UUID 与 Pages 表的 SAMPLE1-UUID 链接。这样做的好处是不会两次创建相同的条目。
但是,我不喜欢为我的页面设置固定数量的行。在上面的 Book 类示例中,我必须定义一组特定的页面,例如 PAGE1、PAGE2、PAGE3、PAGE4、... PAGE99。理想情况下,我只需要一个灵活的图书类页面列表,如下所示:
Name | Pages
Book-One | "SAMPLE1-UUID, SAMPLE2-UUID"
Book-Two | "SAMPLE4-UUID, SAMPLE5-UUID, SAMPLE6-UUID"
Pages 是一个简单的 CharField,其内容是一个列表。但后来我遇到的问题是这两个表不再链接,我必须创建每个条目两次(即我必须在 pages 和 books 表中输入 SAMPLE1-UUID)。
还有其他方法来设计这个数据库吗?感谢您的任何建议!
【问题讨论】:
标签: database django postgresql django-models