我正在处理数据库以保存应召信息计划的信息。目前,我有一个看起来大约是这样的结构:SQL数据库中的计划应用程序的表结构
Table - Person: (key)ID, LName, FName, Phone, Email
Table - PersonTeam: (from Person)ID, (from Team)ID
Table - Team: (key)ID, TeamName
Table - Calendar: (key dateTime)dt, year, month, day, etc...
Table - Schedule: (from Calendar)dt, (id of Person)OnCall_NY, (id of Person)OnCall_MA, (id of Person)OnCall_CA
我的问题是:随着附表表,我应该离开它结构为是,其中DT是一个独特的密钥,或者我应该予以重新排列使DT是不唯一的,并且表看起来像这样:
Table - Schedule: (from Calendar)dt, (from Team)ID, (from Person)ID
,并有每一天多个条目,或将是有意义的只是使用:
Table - Schedule: (from Calendar)dt, (from PersonTeam)KeyID - [make a key ID on each of the person/team pairings]
一个团队总是会有人打电话,但一个人可以一次呼叫多个团队(如果他们在多个团队中)。
如果完全不同的设置会更好地让我知道!
感谢您的帮助!如果我的问题不清楚,我很抱歉。我学习速度很快,但对于每天使用SQL仍然相当新,所以我想确保在学习时使用最佳实践,以免我养成不良习惯。
我建议编辑你的问题标题。 – undone
是的,我刚刚做到了。第一个标题令人困惑,我甚至没有意识到这一点。 –
(请考虑以下的建议,而不是批评。)如果表代表的实体,它往往是似乎最自然的由实体名称(是否使用单数或复数是称之为*高*有争议的,所以我没有在这个头上说什么),就像'人'一样。当另一个表本质上是两个实体之间的多对多关系时,通常使用两个实体的名称来调用它。所以,如果你喜欢,可以考虑它是否会为你工作更好,如果你叫'TeamIndex'表只是'Team'和'Teams'一个,'TeamPerson'(或者,也许,'PersonTeam')。 –