2017-03-21 23 views
0

SQLサーバーに熟練しているわけではありませんが、次の問題を解決する必要があります。複数のエントリタイプを持つSQL Serverテーブル

私は販売のための車を保持するデータベースを作成しています。私は明瞭にするために、不要なフィールドを残してきた

:車が通り(契約)の一握りを経由して購入され、ここで必要な価格設定フィールドの2例があります。

  • タイプ:InitalPayment、MonthlyPayment

  • タイプ::個人契約購入

  • フィールド:InitialPayment、MonthlyPayment、GFMVPayment

違いがある個人契約が

  • フィールドを雇います微妙。

    問題は、ヘッダテーブルのいくつかの種類に伴い、各タイプのテーブルを作成したり、いくつかの余分な未使用のフィールドを持つ単一のテーブルを作成する方が良いだろう、ですか?または、他の何か?

    私は純粋主義者でも冗長性の質問を上げるために私を憎むことを知っているが、解決策はあまりにも実用的である必要があり、私はある必要はない何かを過度に複雑心配です。

    私はORMとしてEntity Frameworkを使用しています。

    どのような考えですか?

  • +0

    また、どのようにクエリするかによって異なります。また、2つのタイプのレコードはいくつありますか?それは非常に歪んでいるか、約50-50でしょうか?行の数は "たくさん"(数千万+)になるでしょうか? –

    +0

    @RaduGheorghiu私の考えはまさに。私はORMを通して使用するのが難しいものは欲しくない。私は何千もの列があると思うが、10の数はないだろう。 –

    答えて

    1

    私は、データベースを設計したことがありませんが、私は私の仕事で日常彼らと仕事。私が遭遇したデータベースは、長年のIT経験を持つ専門家によって設計されたものであり、ここで説明するのと同じ問題に多くのテーブルが対応しています。答えが出るたびに、未使用のフィールドがいくつか追加された単一のテーブルが作成されます。これはITチームの好みにすぎないと思うし、これを実行する唯一の方法ではないが、数十のビジネスアナリティクスクエリを1日に書く人として、私は自信を持ってこの設計が非常に自然で簡単だと言うことができる使用する。

    おそらく、今後この問題に遭遇するつもりです。 4番目のフィールドが必要な別の型を作成することもできます。起こったたびに、別のテーブルを追加しただけなのか想像してみてください。あなたのデータベースはすぐに管理が難しくなり、それを使用している人は誰でも、3〜4つのテーブルのどれが微妙な差異でほとんど同じデータにアクセスできるかを記憶する必要があります。これはあまりユーザーフレンドリーではありません。

    全体的に、私はいくつかの未使用のフィールドを持つ単一のテーブルを作成示唆しています。

    +0

    返事をありがとう。私は同意する傾向があります。私は継承パターン(複数のテーブルがリンクされている)を見てきました。正直言って、顧客の注文(1人の顧客、複数の注文、異なるテーブルの異なるタイプ)を取得するような単純なものであっても、 )美しさは、私がそれを正しく取ったならば価格設定フィールドが(もしあれば)一度も変わることはまずありませんし、おそらくlinqの単一のメソッドを使ってデータを並べ替えることができます。 –

    関連する問題