sql - 在用户表中存储区域/城市数据

标签 sql mysql database-design

假设我有以下内容:

表region_city

id    name           parent_id
==============================
1     North          null
2     South          null
3     Manchester     1
4     London         2

在我的用户表中,我存储用户所在城市的 ID。

现在,在我的搜索表单中,我需要能够执行顶级搜索,即查找属于给定区域(北部或南部)的所有用户。

如果我在用户表中包含一个region_id字段,会让生活变得更轻松吗?或者说这违背了标准化的概念?

最佳答案

它确实使表结构非规范化,并且可能会引入数据更新异常。考虑:用户从曼彻斯特搬到伦敦,并且 city_id 发生变化。 Region_id 仍然可以指向北方。

region_id 取决于城市,因此它不属于用户表。因为它可以源自城市。

关于sql - 在用户表中存储区域/城市数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4445248/

相关文章:

mysql - 我如何进行此选择查询

sql - 如何在sql 2008中查询的where子句中使用新定义的列名

php - 如何在 php 中仅向选定用户的电子邮件发送多封电子邮件?

javascript - 将条件下拉菜单写入 MySQL

mysql - 在 SQL 中分解和计数

mysql - 将 indexedDB 与 mysql 数据库同步

php - 购买元素的数据库关系

mysql - 数据库设计-自定义属性表- "relate"实体表

mysql - 多个 MySQL 数据库连接的优点和缺点

SQL Group By 函数结合 SUM