【发布时间】:2020-04-05 05:37:42
【问题描述】:
我对数据库设计非常陌生,并且正在使用 MS Access 来尝试完成我的任务。我正在尝试创建一个允许查询两个项目的名称和描述的数据库设计 在单行信息上。这是问题所在:某些项目被转换为其他特定项目 - 任何项目都可以对其执行多次转换,并且所有转换都将涉及两个(许多)项目。 从这个意义上说,我们有一个多对多的关系,需要使用一个中间表。我的 表的结构必须允许我在一行中查询项目 ID 和名称 其中涉及转换的项目。
我目前的表格布局如下:
Items
+--------+----------+------------------+--+
| ItemID*| ItemName | ItemDescription | |
+--------+----------+------------------+--+
| 1 | DESK | WOOD, 4 LEG | |
| 2 | SHELF | WOOD, SOLID BASE | |
| 3 | TABLE | WOOD, 4 LEG | |
+--------+----------+------------------+--+
ItemConversions
+------------------+--------------+
| ConversionID(CK) | Item1_ID(CK) |
+------------------+--------------+
| 1 | 2 |
| 2 | 2 |
| 3 | 1 |
+------------------+--------------+
Conversions
+---------------+----------+----------+
| ConversionID* | Item1_ID | Item2_ID |
+---------------+----------+----------+
| 1 | 2 | 1 |
| 2 | 2 | 3 |
| 3 | 1 | 3 |
+---------------+----------+----------+
我想要的是可能实现我上面描述的那种查询,虽然我不认为 我当前的布局将为此工作,因为表仅在 Item1_ID 上加入。任何建议 将不胜感激,希望我的表格不是太具体,这很容易理解。
示例查询输出可能如下所示:
+--------------+----------+----------+----------+----------+
| ConversionID | Item1_ID | ItemName | Item2_ID | ItemName |
+--------------+----------+----------+----------+----------+
| 1 | 2 | SHELF | 1 | DESK |
+--------------+----------+----------+----------+----------+
【问题讨论】:
-
所以也许您需要将 ItemConversions 与 Conversions 结合起来,并将 Items 与 Item1_ID 和 Item2_ID 结合起来?这意味着将 Items 拉入查询两次,第二次将有一个别名,如 Items_1。访问查询设计器将分配该别名。
标签: sql ms-access database-design