gpt4 book ai didi

mysql - 如何更好地组织一个大型地址数据库?

转载 作者:搜寻专家 更新时间:2023-10-30 20:13:20 25 4
gpt4 key购买 nike

如何更好地组织一个大型地址数据库?

需要建立地址的mysql数据库。如何更好地组织?我有两个变体:1)国家

id|name
1 |Russia

cities
id|name
1 |Moscow
2 |Saratov

villages
id|name

streets
id|name
1 |Lenin st.

places
id|name |country_id|city_id|village_id|street_id|building_number|office|flat_number|room_number
1 |somebuilding |1 |1 |NULL |1 |31 |12a |NULL |NULL

为了简化,我没有使用所有的地址。如果任何部分不参与地址,则等于 NULL

2)

addressElements
id|name
1 |country
2 |city
3 |village
4 |street
5 |office
6 |flat_number
7 |room_number

addressValues
id|addressElement_id|value
1 |1 |Russia
2 |2 |Saratov
3 |2 |Moscow
4 |3 |Prostokvashino
5 |4 |Lenin st.

places
id| name
1 | somebuilding

places_has_addressValues
place_id|addressValue_id
1 |1
1 |3
1 |5

更新。我决定做如下 alt text http://notme.ru/bebe/addresses.jpg

我使用属性“类型”(ENUM) 来声明对象的类型。例如,公寓类型可能是“公寓”或“房间”或“办公室”

最佳答案

我选择第一个选项的原因:

  • 简单。第一个选项的清晰度和明显度要高出十几倍。考虑其他人稍后维护您的代码。
  • 加入。正如 Vanessa 提到的,使用第二个选项编写联接会困难得多。

第一个选项的缺点可能是更严格的结构,因此您必须花一些时间来确保所有可能的选项都适合您的数据模型(例如,邮政信箱怎么样?)。您可能想访问本地的邮局并聊聊。也许http://www.russianpost.ru/会有一些有用的信息吗?

关于mysql - 如何更好地组织一个大型地址数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2675750/

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