我對關係數據庫中的主鍵有疑問。讓我們假設我有以下表格:處理相關表的主鍵以節省存儲空間
箱
- ID
- box_name
BoxItems
- ID
- ITEM_NAME
- belongs_to_box_id(外鍵)
我們還假設我打算每天存儲數百萬個項目。對於BoxItems.Id,我可能會使用bigint
或。
我在想什麼,我需要你的建議,而不是BoxItems的Bigint Id,使用順序TinyInt
數字和什麼標識每個項目是belongs_to_box_id加上tinyint行(例如item_numner)的組合, 。
所以現在,而不是上面我們得到:
BoxItems
- belongs_to_box_id
- item_sequence_number [TINYINT]
- ITEM_NAME
例子:
Items.Insert(1,1, "my item 1");
Items.Insert(1,2, "my item 2");
因此,我可以使用tinyint而不是使用bigint或GUID,並節省大量的磁盤空間。
我想知道這種方法的缺點和優點。我正在開發使用MySQL和ASP.NET 4.5
你需要解釋你想要對數據做什麼。物理數據結構由應用程序需求驅動。畢竟,如果你想節省大量的空間,不要存儲任何東西。 –