2012-02-29 46 views
0

可以將不同數據類型的數據存儲爲單一通用數據類型,比如SQL中的'image'嗎?我還會將數據類型值存儲在另一列中,並在我的代碼中使用此值將數據轉換回適當的類型。 我這樣做的好處是 - 我可以避免加入n個表格。 有人可以用這種方式指向存儲數據的下方嗎?是否可以將所有類型的值存儲爲sql中的圖像數據類型?

+1

您應該嘗試學習如何使用連接。 – 2012-02-29 11:07:06

+0

你是一個巨魔嗎? – Mau 2013-11-06 14:23:18

回答

2

這是由於以下幾個原因非常糟糕的主意:

  • 查詢性能將是不好的,因爲優化器不能利用索引,外鍵等,因爲它們不存在。
  • 您沒有獲得參照完整性,因此可以不假設您的數據。
  • 您引入了一個新的附加故障點,因爲如果數據不符合指定的數據類型會怎麼樣?
  • 在你恨你之後必須維護代碼的人。
+0

我喜歡最後一點。 – 2012-02-29 11:07:40

1

我覺得你會是不明智的,採取這種方式,至少有2個原因

  1. 你會的,因爲你注意到,不斷地類型轉換的輸入和輸出。我看不出這是一個有用的操作,雖然我可以把它看作是一個耗時的操作。
  2. 你會交換加入N個表格的(適度的)困難,以便在你的一個表格中進行N個加入(不太適中)。

然後有一個更哲學的論點,沿着你建議使用多工具(SQL),就像它是一把錘子一樣。並非每一種數據類型都是一個釘子。你將會更加高效,如果你的工作與工具的性質無關,我會主張更多地享受你的工作。

我同意Daniel Hilgarth已經寫的東西。

+0

我認爲代碼中的類型轉換輸入和輸出比連接更省時。看起來情況並非如此。 – user811433 2012-02-29 11:21:15

+1

如果您的連接耗時,最有可能數據庫出現問題。也許在外鍵上沒有索引或數據類型不匹配,併發生隱式轉換。你可以檢查你的查詢的解釋計劃,以找出需要這麼長時間。 – 2012-02-29 11:26:56