设计一个数据库来存储有关美国总统及其任期的详细信息。此外,记录他们的出生日期和地点、性别和政党隶属关系的详细信息。您需要记录总统的顺序,以便可以识别任何总统的前任和继任者。请记住,格罗弗·克利夫兰 (Grover Cleveland) 担任过两届非连续任期,政治派别可以改变。
这就是我目前的情况,如果可以改进,请告诉我。另外,我该怎么做“可以确定任何总统的前任和继任者”?这是使用递归关系完成的吗?我将如何执行?
Table President Table Origin
PK presID PK orID
presFName orCity
presLName orState
affiliation birthDate
gender
term
最佳答案
好吧,在这种情况下您有两个实体(表):Presidents 和 Terms。条款将记录任期的日期和现任主席。
Presidents 表将记录总统的详细信息,但不包括 Terms,因为这已包含在 Terms 表中。
了解了这一点,您就可以自己回答问题了。这里有一些线索:
识别前任和继任者。这将按日期完成,因此您知道前任是您现在正在查看的日期之前的前一个日期,而后任将是紧随其后的日期。请注意,您正在查看的总统(第一任总统和现任总统)可能并不总是存在前任和继任者。
您想查看 ORDER BY [DATE] 和 SELECT TOP...
从技术上讲,设计可以进一步为出生地创建第三个表,但这是语义。
您当前的想法是将任期放入总统表 - 这不包括连任总统。但是,您可以使用两列 - 但数据的规范化会告诉您 Terms 可能是一个单独的表(但是,设计论证说每个只有两个术语,所以它的摇摆和回旋处)。
实际上,很多关于总统的数据都可以使用规范化规则分支到其他表中 - 但我现在还不会放弃......
如果您有任何具体问题,请在评论中提问 - 我一直是间接的,因为它的作业:)
关于sql - 需要数据库设计帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3281567/