這些是我的表格,我創建了一個tbl_relation
,其中data_id
從tbl_data
和tag_id
從tbl_tags
。 data_id
可以有多少個tag_ids
。以一對多關係設計數據庫
例如在以下情況下: 約翰與食物,蘋果,橙子有關。 Linus與食物,馬鈴薯有關。
這是在速度和存儲方面做的正確方法嗎?因爲我的tbl_tags
和tbl_data
可以有至少1百萬個條目,並且tbl_data中的name
可以與至少5個tag_name
相關聯。
tbl_tags
+----+--------+
| id | name |
+----+--------+
| 1 | food |
+----+--------+
| 2 | apple |
+----+--------+
| 3 | orange |
+----+--------+
| 4 | potato |
+----+--------+
| 5 | fruit |
+----+--------+
tbl_data
+----+--------+
| id | name |
+----+--------+
| 1 | John |
+----+--------+
| 2 | Linus |
+----+--------+
| 3 | Bill |
+----+--------+
| 4 | Steve |
+----+--------+
| 5 | Dennis |
+----+--------+
tbl_relation
+---------+--------+
| data_id | tag_id |
+---------+--------+
| 1 | 1 |
+---------+--------+
| 1 | 2 |
+---------+--------+
| 1 | 3 |
+---------+--------+
| 2 | 1 |
+---------+--------+
| 2 | 4 |
+---------+--------+
這看起來是一種存儲兩種類型數據及其之間關係的規範方法。您的挑戰在於創建正確的索引,以便可以高效地完成聯接。 –
+是的,這確實是最好的方法 – Milney
A 1:許多關係最好用一個表中的額外列來完成,而不是通過一個額外的表。 –