如何设计 SQL 表来满足这些要求
我的数据为 CITY
和 AREA
。
- 每个
CITY
有多个AREAS
- 每个
AREA
有多个AREAS
(这里没有结束,用户可以动态添加< code>AREAS 在子AREA
下,如AREA->AREA->Area->AREA....->AREA
)
所以,如何设计满足这些要求的表结构?
提前致谢。
I have data as CITY
and AREA
.
- Each
CITY
has multipleAREAS
- Each
AREA
has multipleAREAS
(here there is no end, dynamically user can addAREAS
under the childAREA
likeAREA->AREA->Area->AREA....->AREA
)
So, how to design such table structure which satisfy these requirements?
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
城市表
城市区域表
区域表
区域区域映射表
规则
City Table
City Areas Table
Areas Table
Area Area Mapping Table
Rules
表AREA:
列表CITY:
您可能感兴趣在阅读管理 MySQL 中的分层数据时 - 它也适用于其他数据库引擎
table AREA:
table CITY:
You might be interested in reading about Managing Hierarchical Data in MySQL - it also applies to other DB engines
那将是一棵树(或者可能是一个层次结构)。最常见的解决方案(您将在此处的其他答案中看到)是使用邻接列表模型。然而,另一个需要考虑的“大”想法是嵌套集模型。关于该主题的一本有用的书是Joe Celko 的 SQL 中的树和层次结构。
That would be a tree (or possibly a hierarchy). The most common solution, which you will see in other answers here, is to use the adjacency list model. However, the other 'big' idea to consider is the nested sets model. A useful book on the subject is Joe Celko's Trees and hierarchies in SQL.
反射关系。
或者,如果您愿意嵌套集。
Reflexive relationship.
Or, if you prefer nested sets.
对于 SQL Server 2008,选择的是层次结构数据类型
这是有关性能的链接
For SQL Server 2008 the choice is the hierarchy data type
Here is a link about the performance