私はMySQLのバックグラウンドからSQL Serverを初めて使用しています。私は、次のように定義されたいくつかのフィールドを含むMySQLテーブルを移行しようとしています。SQL Server - 単純な多肢選択フィールドの定義
"FavoriteColors" SET('Red','Blue','Dark Purple', 'Green') DEFAULT NULL,
基本的には複数の選択問題です。これらのフィールドをフォームに入力すると、ユーザーは1つまたは複数のフィールドを選択できます。
この定義に相当するSQL Serverを探しているとき、私は、多くの人がさまざまな選択肢のための余分なテーブルを作成し、前の2つを接続するためのルックアップテーブルを作成することが分かりました。このような複数の選択肢のフィールドがあることを知って、それはそのような単純な定義のためのかなり複雑な解決策のようです。これは本当にベストプラクティスですか、それとも代替ソリューションをお勧めしますか?もちろん、私は各選択肢にBITフィールドを使用できますが、SQL Serverにはおそらくこれのためのよりシンプルで組織化されたソリューションが用意されているようです。
ありがとうございます!
オプションを保持するために別のテーブルを作成することで実行してください、ここで
がコードでデータベース内のどこでも、この新しいデータ型を使用できます外部キー)は、標準的なデータベースの習慣であるデータベースを正規化しています。上記のMySQL構文はSQLのCHECK CONSTRAINTと似ていますが、チェック制約はユーザーインターフェイスに値を課すものではなく、無効な値が入力された場合にデータベースエラーをスローします。 MySQL SETドコから、可能なSET値を取得するためにシステムカタログのハックを行うことができます。これはあなたがやっていることですか?あなたはおそらくSQL Serverで同様のことを行うことができますが、別のテーブルに正規化することをお勧めします –すばらしく、両方にとても感謝します! – Irina