关系数据库中的下拉菜单

时间:2017-11-06 00:08:15

标签: mysql attributes relational-database entity entity-relationship

我对关系型数据库不熟悉,而且我很难绕过它们的某些方面。令我困惑的事情之一可能非常简单,但它是下拉菜单的前景。 (上下文:对酒店网站数据库进行逆向工程)

如果某个网站列出了城市'在下拉菜单中,这是否意味着'城市'是一个实体?我曾经问过同学,他们相信是的,是的,并且每个城市也应该被分配一个城市ID'然而,我很困惑,因为我认为它是一个属性,因为它可以&# 39;在这种背景下进一步分解。

我是否误解了实体和属性的工作原理?如果是这样,有人可以向我解释一下吗?

1 个答案:

答案 0 :(得分:0)

Cities很可能是一个实体集。如果您只关心名称,它可以实现为值集(用于属性),但我们经常希望保留有关城市的其他事实 - 他们所在的国家/地区,郊区,本地化名称等等。此外,名称可以更改,不一定是唯一的或紧凑的。

在需求变化或变得清晰时,数据库设计和维护中的常见做法是将值集提升为实体集(这也意味着属性成为关系)。相反的情况也会发生,但不那么频繁。

何时设置值集:

  • 当它代表标签或尺寸时
  • 当这些值本身有意义时

何时设置实体:

  • 当它有多个非素数属性时
  • 当它涉及比“无所谓的城市”更复杂的关系时。
  • 当元素数量可能发生变化时

这些只是指针,而非硬规则。