我想知道哪种方法能更好地设计我的数据库。
目前设计的医院,广告职位,需要特定的技能(例如,护理,行政等)。候选人可被邀请参加职位面试。
对于其中一项要求,我必须包括医院详细信息,如:医院标识符、医院名称、地址和电话号码。我还必须在其他表格中包括有关候选人、职位和面试的详细情况。
我的问题是,把医院的地址列在医院表格的栏内是否更好,还是为医院的地址另立一张名为地址的表格,并与医院的桌子建立一对一的关系?
我试着把地址放在医院的专栏里,但我想知道哪个更好,把地址放在单独的桌子上是否更有意义。
发布于 2022-11-06 23:45:31
你真的需要问问自己是否需要一家医院和它的地址之间的关系?一个地址会有不止一家医院吗?这种关系有什么用?
一般来说,拥有一种关系简化了更新的过程。如果我有100件东西都在同一个地址上,并且我需要更新地址,那么将该地址作为一个相关表中的一行进行隔离就更容易了。
但是,如果只有一件事在一个地址.好吧..。这就为你解答了这个问题。
最佳实践有时也适用,但我发现,如果你只问“为什么”,并仔细考虑一下,你就会为自己找到正确的方法。
发布于 2022-11-06 23:48:17
数据库规范化是一件变幻莫测的事情。在学校,选择是有限的,因为周围有家教宣布它应该在一个不同的桌子,因为它是一个地址,因此可以使用多次。
然而,世界并不是这样运作的。
在这种情况下,你的医院有多个地址,他们经常改变位置吗?最有可能的答案是否定;因此:在现实世界中,选择最有可能的选项并将地址添加到表中即可。
注意额外的表,因为JOIN操作确实(在现实世界中)是有惩罚的。这并不是说你应该忘记所有关于规范化的事情,而是你应该考虑到数据模型的真实世界含义。
如果每个地址与其绑定的外键一样独特,则将每个地址添加到单独的地址表中没有任何实际用途。
https://stackoverflow.com/questions/74340497
复制相似问题