2012-07-14 50 views
0

我即將擴展另外50多個表的數據庫模式(在MySQL中)。其中大約15-20將引用表File(創建或上傳的文件的wchich將數據存儲在我的項目)的問題是,我應該用什麼程序:MySQL:許多表將FK添加到一張表中 - 是或否?

  • 離開這個場景原樣
  • 爲每個表自己的File

我這麼問是因爲,如果我選擇了第一個選項,在某些時候是一個File將有行的大額它將使CRUD操作(與where clausule)緩慢(我想)。那麼,你認爲什麼是最好的主意?

+0

做最簡單的事情。這聽起來像是意味着有15個FK引用了一列...... – Ben 2012-07-14 12:36:30

+0

是的,但是FK只是外部表的'連接器'。我需要該表 – Tony 2012-07-14 14:20:23

回答

1

保留一箇中心File表,其中所有其他引用的表除非存在File中存儲的不同類型行的顯着不同屬性。換句話說,如果您在File表中爲不同的關聯類型存儲了不同的文件元數據集,則可能會發現有必要針對不同的元數據類型擁有不同的文件存儲表。

但是,如果您存儲的文件二進制數據,文件名,MIME類型等通用於所有關聯類型的同一組文件,則它屬於一個表。

如果表格預計增長非常大,請考慮其存儲空間partitioning。通過適當的索引,CRUD操作可以在數百萬行中執行。

+0

的數據謝謝,這非常有幫助! – Tony 2012-07-14 14:11:12