0

スプレッドシートのように見えるものを作成していますが、多くの違いがあります。各列は、オブジェクト テーブルのオブジェクトを表します。

オブジェクト表:

  • 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 と結合するときに、最初にアクション タイプをチェックしてから、適切なテーブルと結合しますか?

4

0 に答える 0