2015-11-21 48 views
1

我有3個表,其所有的人都具有相同的結構:幾個分離的表格與一個帶有附加列的集成表格?

// table1    // table2    // table3 
+----+------+   +----+------+   +----+------+ 
| id | name |   | id | name |   | id | name | 
+----+------+   +----+------+   +----+------+ 
| 1 | jack |   | 1 | ali |   | 1 | peter| 
+----+------+   +----+------+   +----+------+ 

好了,我想知道,我現在的結構是一個額外的列隨之好轉或集成表?是這樣的:

+----+------+-------+ 
| id | name | which | 
+----+------+-------+ 
| 1 | jack | table1| 
| 2 | ali | table2| 
| 3 | peter| table3| 
+----+------+-------+ 

注:應當指出的是,在目前的結構(幾個表)我的查詢是這樣的:

select id, name from table1 
    union all 
select id, name from table2 
    union all 
select id, name from table3 

現在我想知道的轉換那幾個表到一個表並添加一個新列是更好還是不行? (我認爲新列是有點超負荷,是真的嗎?)

+0

如果不知道這些值代表什麼,行代表什麼,以及它們在現實世界中如何相互關聯,這是不可能分辨出來的。什麼是實際數據? –

+0

@DavidAldridge實際數據是幾個字典表。表1:「中文單詞」,表2:「法語單詞」等....!在那裏,所有表格都有一個包含英文單詞的公共列。我的意思是所有的表都是'英語到法語'或'英語到中國語' – stack

+1

單個表應該是正確的方法,而另一列是當時語言的關鍵。 –

回答

1

如果你確信所有三個表仍將有共同的屬性,然後單表的選擇是好的,如果這可能不會再堅持唐我沒想過。

This thread may help you more。

2

這有實際後果,也有哲學後果。從實際的角度來看,如果不知道如何使用數據,就很難知道。這個數據的讀寫比率是多少?在單個查詢中多長時間選擇兩個或多個表中的數據?如果你必須做一個UNION來獲取所有收集到的數據,它會變得更慢,更麻煩。

我更喜歡哲學方法,從主題開始。這裏只有一種實體,還是有三種不同的實體,都具有相同的屬性?這幾乎總是告訴我是否將它們放在同一張桌子上,而且大多數時候也會給實際問題提供正確的答案。

我會說我會四處尋找額外的屬性的值更好的名稱。 「table1」,「table2」和「table3」對我來說似乎非常不透明。主題也應該提供一個線索。

編輯:

現在我得到的主題

,我會贊成一個表來發表意見。這是一個意見,而不是一條硬性規定。所以它會是這樣的。

+----+-----------+----------+--------------+ 
| id | word  | language |translation | 
+----+-----------+----------+--------------+ 
| 1 | butterfly | Spanish | mariposa  | 
| 2 | butterfly | French | papillon  | 
| 3 | butterfly | Italian | farfalla  | 
| 4 | chair  | Spanish | silla  | 
+----+-----------+----------+--------------+ 
+0

謝謝.....! +1 – stack

+1

好的,現在我明白了。如果你把表格稱爲「法語」,「西班牙語」,「德語」而不是表格1,表格2,表格3,我會更早看到它。 –

相關問題