如何设计具有父子关系的数据库?

Sta*_*bie 5 database-design normalization

如果我需要在数据库中表示位置(例如国家,州/省/地区,城市等),我将如何以最容易查询,扩展最多等方式这样做. .?我计划将此用于允许用户选择多个位置并将其与其个人资料相关联的应用程序.

想到的解决方案是这样的:

===========================
| Id | ParentId | Name    |
===========================
| 1  | 0        | USA     |
---------------------------
| 2  | 1        | Alabama |
---------------------------
Run Code Online (Sandbox Code Playgroud)

我想知道这种解决方案是否存在任何潜在问题.谢谢.

Byr*_*ock 3

如果您知道不同类型的项目(城邦国家),则应该创建单独的表。将它们全部放在一张表中会使查询变得更加困难。

如果您使用不同的表类型,则可以强制引用完整性,这样就不会出现孤表。

为孩子们想想吧!

  • 我认为我并不了解所有不同类型的物品。不同国家对地理区域的划分不同。我需要一个支持 n 级层次结构的设计。 (2认同)