スプレッドシートのように見えるものを作成していますが、多くの違いがあります。各列は、オブジェクト テーブルのオブジェクトを表します。
オブジェクト表:
- id: 主キー int
- 名前: varchar
各行はアクション テーブルのアクションを表します
アクション表:
- id: 主キー int
- アクションタイプ: tinyint
これら 2 つのセルと見なすことができる多対多のリンク テーブルがあります。null 以外の各セルにはエントリがあります。
ObjectsActions テーブル
- objectId: 外部キー int
- actionId: 外部キー int
- 価値: ?
各アクションには actionType プロパティがあります。ほとんどのタイプでは、すべてのセルに整数値が含まれます。ただし、一部には文字列も含まれます。
ここで私の質問の出番です。これは答えるのが難しく、多くのことが絡んでいることは承知しています。しかし、大きな禁止事項や一般的な経験則などがあるかもしれません。ObjectsActions-Table の値プロパティのデータ型は何ですか
オプション 1. varchar 型にする必要がありますか? 整数値を予期する actionType で行 (アクション) のセル値を取得する場合、各文字列は int に変換する必要があります。
オプション 2.代わりに、型をバイナリにするのが賢明でしょうか?(sqlce "binary" type)? そうすれば、各整数が占めるスペースを大幅に減らすことができると思いますか?
オプション 3. 2 つ (またはそれ以上) の ObjectsActions-Table が必要ですか? 文字列用とint用に1つ?次に、Actions-Table を ObjectsActions-tables と結合するときに、最初にアクション タイプをチェックしてから、適切なテーブルと結合しますか?