好的,这是我的问题。
我有一个选择的项目,他们的名字是;
UAT-1 UAT-2 UAT-3
每个项目都有“区段”,但并不是每个项目都有与前一项相同的部分。例如,UAT-1将有‘红色’,‘绿色’,‘蓝色’部分。
UAT-2将有秒-“红色”,“布朗”,“紫色”。
UAT-3将有“金”、“银”、“红”三部分。
针对这个问题设计MySQL表的最佳方法是什么?我在想一些与…有关的事情;
项目
+-----+-----------+
|id |item_name |
|-----|-----------|
|1 |UAT-1 |
|2 |UAT-2 |
+-----+-----------+章节
+-------------------------------+
|id |section_name |belongs_to |
|-----|-------------|-----------|
|1 |Red |1 |
|2 |Green |1 |
|3 |Blue |2 |
|4 |Purple |1 |
| | | |
| | | |
+-------------------------------+然而,我如何处理两个部分属于一个项目的情况?
谢谢!
发布于 2014-02-13 14:43:41
一种方法是添加一个中间表。这让您的“项”和“节”作为不同的记录存在。
项目:
+-----+-----------+
|id |item_name |
|-----|-----------|
|1 |UAT-1 |
|2 |UAT-2 |
+-----+-----------+各科:
+--------------------+
|id |section_name |
|-----|--------------|
|1 |Red |
|2 |Green |
|3 |Blue |
|4 |Purple |
+--------------------+ItemsSections:
+---------------+
|item |section |
|---------------|
|1 |1 |
|1 |2 |
|1 |4 |
|2 |3 |
+---------------+您将获得具有如下查询的特定项的节:
SELECT
Sections.*
FROM
Sections
RIGHT JOIN ItemsSections
ON Sections.id = ItemsSections.Section
WHERE
ItemsSections.item = 1发布于 2014-02-13 14:44:54
对于n:m关系,通常有两个基表和一个关系表:
items
+-----+-----------+
|id |item_name |
|-----|-----------|
|1 |UAT-1 |
|2 |UAT-2 |
|3 |UAT-3 |
+-----+-----------+
sections
+-------------------+
|id |section_name |
|-----|-------------|
|1 |Red |
|2 |Green |
|3 |Blue |
|4 |Brown |
|5 |Purple |
|6 |Gold |
|7 |Silver |
+-------------------
item_sections
+--------------------+
|id_item |id_section |
|--------|-----------|
|1 |1 |
|1 |2 |
|1 |3 |
|2 |1 |
|2 |4 |
|2 |5 |
|3 |1 |
|3 |6 |
|3 |7 |
+--------------------+发布于 2014-02-13 14:37:58
UAT-1将有‘红色’,‘绿色’,‘蓝色’部分。
UAT-2将有秒-“红色”,“布朗”,“紫色”。
UAT-3将有“金”、“银”、“红”三部分。
+-----+-----------+ +-----+--------------+
|id |item_name | |id |section_name |
|-----|-----------| |-----|--------------|
|1 |UAT-1 | |1 |Red |
|2 |UAT-2 | |2 |Green |
|3 |UAT-3 | |3 |Blue |
+-----+-----------+ |4 |Brown |
|5 |Purple |
|6 |Gold |
|7 |Silver |
+-----+--------------+
+-------------------------------+
|id |section_id |item_id |
|-----|-------------|-----------|
|1 |1 |1 |
|2 |2 |1 |
|3 |3 |1 |
|4 |1 |2 |
|5 |4 |2 |
|6 |5 |2 |
|7 |6 |3 |
|8 |7 |3 |
|9 |1 |3 |
+-------------------------------+https://stackoverflow.com/questions/21757129
复制相似问题