リレーショナルデータベースの主キーについて質問があります。次のテーブルがあると仮定しましょう。
箱
- id
- box_name
BoxItems
- id
- 項目名
- 所属_to_box_id(外部キー)
また、私が1日に何百万ものアイテムを保管するつもりであると仮定しましょう。私はおそらくBoxItems.Idにbigint
またはを使用します。guid
私が考えていたのは、BoxItemsのBigint Idの代わりに、連TinyInt
番を使用し、各アイテムを識別するのは、belongs_to_box_idとtinyint行(例:item_numner)の組み合わせです。
したがって、上記の代わりに、次のようになります。
BoxItems
- 所属_to_box_id
- item_sequence_number [TINYINT]
- 項目名
例:
Items.Insert(1,1, "my item 1");
Items.Insert(1,2, "my item 2");
したがって、bigintまたはGUIDを使用する代わりに、tinyintを使用して、多くのディスク領域を節約できます。
そのようなアプローチの短所と長所を知りたいです。MySQLとASP.NET4.5を使用してアプリを開発しています