gpt4 book ai didi

database-design - 存储下拉菜单的信息

转载 作者:行者123 更新时间:2023-12-04 06:55:44 26 4
gpt4 key购买 nike

假设您正在构建一个 HTML 表单并且您想要有 2 个或更多下拉菜单,在从第一个选项中选择一个选项后,第二个菜单被填充,依此类推。例如,选择 country将显示一个列表 provinces对于该国家/地区,该国家/地区将依次列出 cities .

您将如何将此类信息存储在数据库中?你要一张 table 吗Countries(id, name) , Provinces(id, country_id, name) , Cities(id, province_id, name)或者你是否只有一个大的非规范化表 Entries(country, province, city) ? (为什么?)

最佳答案

我会使用规范化形式,因为(与规范化形式一样)更新会更容易和更安全。

想象一下,“加拿大”将其名称更改为“美国的帽子”。用规范化的形式,你更新一行,它的依赖省市还是准确的。使用非规范化形式,您的更新必须为加拿大的每个城市更新表中的一行,这会降低效率(并且[遗憾地] 在某些 RDBMS 中,不是原子的)。

此外,考虑到您将来可能会向这些表中添加更多列,例如国家/地区的国家/地区代码、省缩写、城市邮政编码等。所有这些数据都需要为非规范化表中的每一行复制;在规范化表中,您(再次)将数据放在一个适当且规范的位置。

顺便说一句,您可能会考虑丢失“id”列(大概是自动生成的整数键?)并使用自然主键:可能是国家的国家代码、省份的“名称”以及城市的经度/纬度列(假设“名称”不会起到必要的区分作用)。

关于database-design - 存储下拉菜单的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2582859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com