3 つの小さな数値列 [Number(1)] >>
OptionA | 0/1
OptionB | 0/1
OptionC | 0/1
または 1 つの大きな文字列列 [Varchar2(29)] >>
Options | OptionA=0/1|OptionB=0/1|OptionC=0/1
データベースがテーブルを処理する方法についてはよくわかりませんが、3 つの列を Number(1) として維持する方が、1 つの列を Varchar2(29) として維持するよりも優れていると思います。
-編集-
状況をもう少し説明しましょう。
私は、すべての着信/発信要求/応答が追跡される共通のフレームワークに取り組んでいます。これらの相互作用は、DB/ファイル/JMS にチャネリングできます。現在、出力タイプに対応する列を持つテーブルからすべての構成がロードされています。現在、その列の値として「DB = 1 | FILE = 1 | JMS = 0」を使用しているため、後で誰もが自分のモジュールにこれを追加したいので、何が起こっているのかを簡単に理解できます。私のコードでは、文字列を "|" で分割する単純なロジックを書きました。次に、排他的な or 演算子を使用して、スイッチ ケースを使用して選択肢を切り替えます。
すべてがすでに行われていますが、1 つの大きな列が 3 つの小さな列よりも優れているという考えは好きではありません。これにより、実行中の分割文字列が削除されます。
-編集-
私は最終的にそれを明確にしました。さらにオプションを追加しなければならない状況があるかもしれません。その場合、データ列ごとに追加すると、テーブルの変更 + エンティティの変更 + さらに追加が必要になります。一方、オプションを切り替える単純なビット単位のロジックで列挙型を作成することになりました。このように、列挙型を変更し、新しいオプション用の新しいハンドラーを追加する必要があります。