伙计们!我需要一些帮助,为应用程序组织数据库,我不知道如何做。假设如下:有一个学术科目的清单。对于每一个科目,我们需要有一个学术团体的名单,他们参加这个主题。然后,对于每一组,我们需要有一个日期列表。每一次约会,我们都需要一份学生名单,以及这位学生那天是否在场。我脑海中有丑陋的数据结构,会感谢你的帮助。
更新
我如何看待它:
Table1(第一次是日期,第二次是列出在场的学生身份)
10/10/11 | id1, id2, id3
10/11/11 | id1, 1d3, id5
Table2:
subject1 | id1 id2 id3
subject2 | id3 id2
同样,id是组的id。不知道如何连接这些表。
发布于 2011-10-05 22:59:01
在设计数据库时,有许多需要考虑的问题,但根据到目前为止提供的信息,这样的情况可能是一个好的开始:
这个ER模型使用了大量的标识关系(即“迁移”父母的主键到子的PK),并导致自然的主键,而不是需要使用代理键的非标识关系。现在很多人都喜欢代孕钥匙,但事实是,这两种设计策略都有优缺点。特别是:
自然密钥更大(它们在父-子relationships).
)。
发布于 2011-10-05 18:28:04
您将为数据库中的各种“事物”(主题、小组、学生、会议)设计一张表格。每个表将为您需要存储的每一个数据(信息)有一列。此外,必须有一个列,或一个可预测的列组合,使您能够唯一地标识存储在表中的每一件东西(行)。
然后,您将决定事物(主题、组、学生、会议)如何相互关联,并确保每个表中都有正确的列来存储这些关系。您将发现,在某些情况下,可以通过向您已经定义的表中添加一个或多个列来完成这一任务。在其他情况下,您需要添加一个全新的表,它本身不存储“东西”,而是两件事之间的关系。
一旦你有了表格和列的列表,如果你觉得这不能正确地代表问题的某些部分,用你已经做过的工作发布另一个问题,我相信你会找到帮助你完成任务的人。
对更新的响应:
你走错路了。将两个值存储在单个字段中是一个坏主意(与正确的关系数据库设计相反)。因此,您所写的每个表都应该有两列(正如您所说的),但是第二列应该存储一个并且只有一个id。不是10/10/11的table1中的一行,而是表中的三行。
但是,在你开始担心“关系”之前,先创建表格来保存“事物”。
我还建议您学习关系数据库的基本指南。
https://stackoverflow.com/questions/7665735
复制相似问题