私は簡単な質問があります - "どちらか/または"データを格納するためのSQLテーブル設計のベストプラクティスがありますか?SQLテーブル - どちらか/またはデータのパターン
私は次のような問題があります。テンプレートデータ(フォルダ構造の定義)をSQLテーブルに格納する必要があります。任意のフォルダは静的な名前(「電子メール」など)を持つ場合もあれば、関連するオブジェクト(会社名など)に応じてインスタンスごとに動的に生成される場合もあります。
ビジネスオブジェクトがインスタンス化されると、テンプレートデータが実際のフォルダ構造の作成に使用されます。
私はこのようなデータを格納することを考えています:私はIsDynamicフィールドがtrueに設定されている場合
CREATE TABLE folder ( ID INT IDENTITY PRIMARY KEY, FolderName NVARCHAR(50), IsDynamic BIT NOT NULL DEFAULT 0, DynamicFieldID INT FOREIGN KEY REFERENCES dynamicField, ParentID INT FOREIGN KEY REFERENCES folder )
は、だから私は(外部キーに定義されている)のルールがあることを知っているが、そうでない場合はフォルダ名に格納されている値を使用します。
しかし、これはちょっと面倒なようです。このようなシナリオでは、「ベストプラクティス」パターンがありますか?
こんにちはパトリック - これに感謝。私はこれを検討していたが、これが私の場合より良かったか悪いかを判断するのに悩まされた。なぜこれがより良いのか(あるいは長所と短所とは何か)についてのあなたの意見は何ですか? – Chris
2つ以上のタイプのフォルダがある場合、または2つ以上のカラムが影響を受けた場合、このアプローチは、すべてを1つのテーブルに保持しようとするよりもきれいになります。 しかし、私はChrisのCOALESE提案がより実用的だと思います。私は彼の答えを受け入れるだろう。 :-) –