Joh*_*Del 1 mysql sql database-design data-structures
我有一个非常基本的问题让我感到困惑,因为一些奇怪的原因.
我有两个表,一个是表格页面,另一个是菜单.我想知道,使用另一个表进行映射有什么好处?以下是我想的两个实现:

我看到的唯一区别是我搜索的方式.例如,在第一个实现中:
a)如果我想要特定菜单的所有页面,我将查询特定菜单名称的所有page_ids,并且我将使用表格的id加入它们(这就是为什么我认为这个实现更慢) .
b)如果我想要特定页面的所有菜单,我将搜索具有特定页面的page_id的所有菜单.
在第二个实现中更典型和直接(并且具有更多连接).
我认为第二个实现是正确的,因为它更快(我猜,因为它仅在ID之间进行查询而不是在菜单名称中搜索,如上所述))).
或者还有其他特殊原因吗?这两个设计在它们可以完成的事情上是否相同,或者在第一个设计中是否存在任何其他限制,我总是应该选择第二个设计?
这两个选项不相同; 后者是在多对多设计中使用的正确选择.使用连接表意味着您可以有许多页面(A,B,C)和许多菜单(1,2,3),您可以将一组菜单与一组页面相关联(产生A1,A2,A3,B1) ,B2,B3,C1,C2,C3).
第一种设计假定任何给定的菜单只能有1页与之关联.菜单1只能与一个页面相关联(它是A,B还是C?).要将同一菜单与多个页面相关联,您需要在菜单表中为每个关联页面添加一行.
| 归档时间: |
|
| 查看次数: |
1895 次 |
| 最近记录: |