2016-08-16 126 views
-2

我有一个数据库,下面的图片,我觉得必须有一种有效的方式来为每个孩子添加单独的书籍。例如......数据库中可能会有50名会员。每个俱乐部都会放在自己的书本里,为了简单起见,每本书都有10个俱乐部必须完成的部分。我正在考虑为每个有10个部分的孩子制作一张桌子,但最终会在我的数据库中放置超过50张桌子。我还想过创建一个名为book的表格,并且只让该表格包含10个部分,但是每个孩子的问题可能在8个不同的书籍中。所以一张名为书的表也不起作用。建立我的数据库的最佳方式是什么

有没有人有如何在数据库中设置好这个建议?我的最终目标是让每个孩子与可用的8本书中的一本链接。然后,数据库将跟踪每个孩子在哪一部分为他们的某本书。所以......今天的俱乐部A可以完成第一部分的第一部分和第二部分,但是俱乐部B可能只完成第二部分的第一部分。我想从数据库中提取这些信息,看看每个俱乐部在他们的书本中的位置。 ..但是......我首先需要正确设置数据库。

我应该为每本书创建8个单独的表,并将表数据设置为第1部分...第2部分...?或者我应该创建一个表并列出8本书,然后将其链接到另一个包含部分信息的表?还是有更好的办法?

感谢所有帮助![mydatabase

+0

这将是最好的阅读关于这个主题[一堆文章](http://code.tutsplus.com/articles/sql-for-beginners-part-3-database-relationships-net-8561) ,并且了解每个过程以及每个过程的用途,而不是仅仅给出别人认为最适合您的网站的答案。对不同的餐桌结构和关系进行一些研究,看看哪些名字突出显示为有用的结构,然后研究这些名称以获得有关如何实施和维护它们的指南 – Martin

+0

Clubber:经常访问夜总会的人(http:// www .thefreedictionary.com /俱乐部会员)。一本书夜总会。 'Bangin''。从字面上看。 – Martin

回答

1

你需要一本书的表格和一个表格。部分将包含book_id,因此它知道它是哪一本书的一部分。然后,您可以使用section_id将您的孩子链接到各个部分,以显示他们所处的部分。加入书籍的查询会告诉您哪本书是其中的一部分。

如果孩子可以同时阅读多本书,那么您需要一个中间表,这个中间表在逻辑上位于包含孩子的id和部分id的两个表之间,因此多本书可以与相同的关联儿童。

+0

这正是我所要求的!谢谢!在询问这个愚蠢的问题之前,我在网上搜索了很多论坛和图片一周。我一直坚持将儿童与书籍联系起来的想法,但是将它们与各个部分联系起来非常完美!它甚至解决了我遇到的其他问题!再次感谢你! –

+0

没问题。这是一个基于关系数据库中的“规范化”原则的非常标准的设计 - 如果将来遇到这种事情,可能是一个很好的研究课题:-) – ADyson

0

您可以添加已id_child一个中间表child_parent和id_parent从表子和父表的每一行中,所以你最终的孩子和家长之间的N-N关系。

+0

给予孩子们经常有多个父母(!),这本身就是一个有用的建议,但是OP询问如何表示孩子正在阅读哪本书,以及他们正在阅读哪本书。 – ADyson

相关问题