DB に一連のオブジェクトがあり、それらに関連付けられた多数のブール値フラグを持つことができます。
フラグは事前定義されますが、後で追加または削除される可能性があります。FlagID
と を使用してそれらをテーブルに格納できますFlagName
。
ObjectID
これらのフラグの値を格納するのは簡単です。それらは、とを含む単純なテーブルに保存できますFlagID
。このテーブルのエントリは、「設定」フラグを示します。
Objects
その後、結合を使用してクエリを実行すると、「セット」フラグを使用して簡単に抽出できます。
しかし、私の Symfony アプリケーション (Doctrine を ORM として使用) は、この結合で「未設定」の値をすべて取得する必要があるため、それらを設定するためのチェックボックスを提供できます。つまり、理想的な出力は次のようになります。
ObjectID FlagID Value
1 1 True
1 2 False
2 1 False
2 2 False
3 1 False
3 2 True
この結果セットは、データベース内の次のデータから生成されます
ObjectID FlagID
1 1
3 2
FlagID FlagName
1 Foo
2 Bar
このように、各オブジェクトに対して未設定のフラグをすべて格納する必要がないため、フラグが追加されるたびに未設定のフラグをテーブルに事前入力することを心配する必要がありません。
この結果セットを生成するクエリはありますか?