2013-03-14 65 views
0

我目前維護一個單獨的數據庫表,它具有存儲在文件系統中的圖像的一些信息。此設置適用於我目前記錄的數十萬張照片。兩個圖像表或一個用於存儲默認圖像?

對於用戶默認圖像,我維護一個包含照片的單獨文件夾,但這已成爲維護的噩夢。我應該創建第二張表,存儲對錶1默認照片的引用,還是在表1中添加一個新字段是一個更好的布爾值,我可以將其設置爲指示默認照片?

我的表看起來是這樣的:

image_table 
id user_id file_name 
1 6  xvy.jpeg 
2 6  abc.jpeg 
3 6  def.jpeg 

建議解決辦法:

image_table 
id user_id file_name default 
1 6  xvy.jpeg 0 
2 6  abc.jpeg 1 
3 6  def.jpeg 0 

在此提出的解決方案就好像我需要做兩個SQL調用重置默認,然後第二個電話設置一個新的默認照片,如果用戶更改它...

回答

1

如果第二個表具有相同的co,則最好添加新字段而不是添加新表如果你採用這種方法,那麼第一列就是第一列。

推理:如果我需要從兩個表中獲取值,我需要做一個麻煩的UNION。如果你有三張或更多的表都具有相同類型的數據,並且我一次都想要所有這些表?它只是越來越笨重和笨拙,更難以編碼。

+0

這很有道理,雖然它似乎像mysql查詢可能會得到凌亂的嘗試重置值,並將其分配給另一個字段的默認照片... – Paul 2013-03-14 23:58:24

+0

您可以對您所在的同一張表執行外鍵引用(稱爲自加入) - 因此您可以擁有您想要的查詢結構,而無需創建新表。 – Patashu 2013-03-15 00:00:21

+0

我添加了一個建議的解決方案,據我所知,仍然需要兩次SQL調用才能更改默認照片... – Paul 2013-03-15 00:04:52

0

那麼我可以看到你正在使用一些SQL數據庫,但不要誤解我爲什麼不嘗試一個NoSQL數據庫,如MongoDB。我知道創造一個領域作爲一個標誌或創建一個新的表格似乎不是一個好設計。