首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySql数据库设计

MySql数据库设计
EN

Stack Overflow用户
提问于 2012-02-16 03:26:38
回答 1查看 93关注 0票数 3

我正在使用MySQL作为数据库,我有一些设计问题:

我有一个表"locations“,其中包含某个位置的locIDlat & long &name值。

我还有一张桌子categories,里面有IDcategory-name & locID

现在,我要确保类别可以分配到多个位置。我该如何正确地做到这一点呢?让同一类别存储多次,为每个locID存储一次,这没有太大的意义,不是吗?这里怎么走?

谢谢!罗恩

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-16 03:28:18

您可以使用join table对多对多关系进行建模。

代码语言:javascript
运行
复制
location_category
location_id   category_id
1             1
1             2
2             1
2             3
3             4

添加外键约束以防止将无效值输入到表中:

locations.locID

  • From到categories.ID

  • location_category.location_idlocation_category.category_id

另外,将(location_id, category_id)设置为表的主键,以防止将一个类别多次添加到同一位置。

从表中读取数据时,使用JOINs从主表中获取相关数据:

代码语言:javascript
运行
复制
SELECT ...
FROM location_category
JOIN locations ON location_category.location_id = locations.locID
JOIN categories ON location_category.category_id = categories.ID
WHERE ....
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9299898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档