個別の行としてではなく、1つの行の1つのフィールドに複数の値を格納することの利点
前回の毎週の会議中に、データベース管理のバックグラウンド経験がない人がこの質問を持ち出しました。 「データを複数行ではなくインライン(文字列)に保存することを正当化するシナリオはありますか?」 countryStates国の州を保存する場所と呼ばれるテーブルがあるとします。この例では米国を使用します。怠惰にするためにすべての国をリストすることはしません。 そこには2つの列があります。1つが呼び出さCountryれ、もう1つが呼び出されましたStates。ここで説明し、@ srutzkyの回答で提案されているように、これはISO 3166-1 alpha-3でPK定義されたコードになります。 テーブルは次のようになります。 +---------+-----------------------+-------------------------------------------------------+ | Country | States | StateName | +---------+-----------------------+-------------------------------------------------------+ | USA | AL, CA, FL,OH, NY, WY | Alabama, California, Florida, Ohio, New York, Wyoming | +---------+-----------------------+-------------------------------------------------------+ この同じ質問を友人の開発者に尋ねたところ、データトラフィックサイズの観点からは、これは役立つかもしれませんが、このデータを操作する必要がある場合はそうではないと述べました。この場合、リスト内のこの文字列を変換できるアプリケーションコードにインテリジェンスが必要です(このテーブルにアクセスできるソフトウェアがコンボボックスを作成する必要があるとしましょう)。 このモデルはあまり有用ではないと結論付けましたが、これを有効にする方法があるのではないかと疑いました。 私が聞きたいのは、実際に機能する方法で、このようなことをすでに見たり聞いたりしたりしていないかどうかです。