【发布时间】:2018-03-10 13:24:28
【问题描述】:
作为我学校科目的介绍性项目,我被要求创建一个应用程序来显示我所在国家/地区的商店列表,并可以按位置和类别对其进行排序。更重要的是,它不应该只是一个静态文本,因为用户可以将他/她自己的商店添加到列表中。
虽然我的 Java 应用程序的 UI 和功能没有遇到任何问题,但我是数据库的新手,尤其是 MySQL。尽管我仔细阅读了一些教程,但我仍然在为一个非常原始的问题苦苦挣扎。
问题是:
我创建了一个表“Shop”,其中包含“id”(自动递增的主键)、“name”(文本类型)、“type”(文本类型)和“location”(文本类型)列。
同样,又制作了两张桌子:
1)“类型”,它再次包含“id”作为主键和“类型”。例如:
id type
1 supermarket
2 grocery
3 bookshop
2) “位置”也带有“id”和“城市”。像这样的:
id city
1 London
2 Nottingham
3 Southampton
我试图做的是在“类型”/“位置”和“商店”表之间创建“多对 1”关系(或“类型”和“商店”以及“位置”之间的“1 对 1”关系”和“商店”),因为我想进一步按位置和类型对商店进行排序,因此在我的应用程序中打印相关商店的列表。但是,我根本找不到实现这些连接的逻辑顺序。
期待任何提示。 提前致谢!
【问题讨论】:
-
鉴于要求,不需要多张桌子。鉴于您对第一个表的实现,不需要其他两个。
-
但是如果我接下来调整我的表格:“类型”将包含 type_id,“位置” - location_id,因此,我的“商店”表格的“类型”和“位置”将变成索引“ type_id”和“location_id”。或者这只是浪费时间?
-
浪费时间。您只是让检索数据变得更加昂贵和复杂。
标签: mysql sql database foreign-keys relational-database