我正在使用MySQL作为数据库,我有一些设计问题:
我有一个表"locations“,其中包含某个位置的locID,lat & long &name值。
我还有一张桌子categories,里面有ID和category-name & locID。
现在,我要确保类别可以分配到多个位置。我该如何正确地做到这一点呢?让同一类别存储多次,为每个locID存储一次,这没有太大的意义,不是吗?这里怎么走?
谢谢!罗恩
发布于 2012-02-16 03:28:18
您可以使用join table对多对多关系进行建模。
location_category
location_id category_id
1 1
1 2
2 1
2 3
3 4添加外键约束以防止将无效值输入到表中:
从locations.locID
categories.ID的
location_category.location_id到location_category.category_id另外,将(location_id, category_id)设置为表的主键,以防止将一个类别多次添加到同一位置。
从表中读取数据时,使用JOINs从主表中获取相关数据:
SELECT ...
FROM location_category
JOIN locations ON location_category.location_id = locations.locID
JOIN categories ON location_category.category_id = categories.ID
WHERE ....https://stackoverflow.com/questions/9299898
复制相似问题