2016-03-30 6 views
0

私は、顧客とそのアプリケーションのパッケージング要求を管理するプログラムに取り組んでいます。私は情報をMS SQLデータベースに保存し、異なる顧客は関連する値または使用される値のセットが異なるため、顧客に応じて異なるデフォルト値を設定します。1人の有名なメンバーと1:nの関係を持つ方法

マイデータベースには2つの関連テーブルがあります。顧客とアプリケーション。 1つの顧客は多くのアプリケーションを持つことができます(アプリケーションでは1:n外部キー)。各顧客には、1つのデフォルト値(顧客に1:1の外部キー)もあります。

研究と私はこれらの2つの参考文献について本当に悪い気持ちを持っています。 1:Nの関係のN側の優れたメンバーを達成するためのよりエレガントな方法がありますか?

あなたの顧客とデフォルトのセットが1:

答えて

0

は、いくつかのアプローチがあります1。

他のすべてのアプリケーション・エンティティと顧客が1:nの

  • あなたは、あなたの顧客テーブルに直接デフォルトを置くかもしれません(クリーン簡単かつ高速ではなく)
  • あなたは同じで2つのテーブルを定義することができます構造。 1つはデフォルトを定義し、1:1の関係を1:nの関係にバインドするためのnull不可能な列を持つもの。
  • アプリケーションテーブルのマーカーを使用して、
  • デフォルトの行のIDを格納するためにFK-IDを顧客テーブルに設定している可能性があります。
  • 私のアプローチは次のとおりです。ランク列をアプリケーションテーブルに配置します。 customerIDとrankの組み合わせを一意に設定することができます。これにより、最も低いランクをデフォルトとし、カスケードスタイルシートと似ているものを定義することができます。最も高いものから始め、見つけられるまで後方に移動できますNULL以外の1つの値。
関連する問題