2017-07-27 3 views
-1

私はコンピューティングで1歳未満です。私は早期教育期間中にコンピュータサイエンスを受けたがっています。単一テーブル継承:DBテーブルにnull値が多すぎる結果

私はレールで開発し、STIを適用することを考えています。各サブクラスの列の数は5〜6の範囲であり、これらは比較的同じデータ型です。そして、私は各サブクラスのためのユニークな属性を持つことが良いアイデアかどうか疑問に思いますか?

DBテーブルにNull値が多すぎると、どのような悪影響がありますか?

  • コンピューティングパフォーマンスが低下しますか?
  • 検索のパフォーマンスには影響しますか?

サブクラスには多くの共有データ型があり、各サブクラスの列数に大きな差はないため、同じ属性名を使用してテーブルの列の総数を減らすことができます。

しかし、各サブクラスで属性名を区別しないと、各サブクラスの入力フォームがコード内で醜いことがあります。あまりにも多くの論理を見せたくないので、AJAXを使ってコントローラーでより良いコードを書くことができます。

あなたは何をしますか?

+0

パフォーマンスについて質問しているので、使用しているDBを指定すると役立ちます。 モデルをデータに近づけるために、このテーブルを分割する必要があるという兆候であるコード匂いと考えると、それらの列が別のテーブルにある可能性があり、データがnullの場合は矢印を追加しないだけです。 –

+0

私は、多態的な関連付けがSTIよりもよく適合していることがわかりますが、私たちはあなたがセットアップしようとしているテーブル/列がわからないので、私は確かに言い表せません。 – bkunzi01

+0

@GuillermoSiliceoTruebaありがとうございました。私はPGを使用しています。そして、はい、あなたが示唆するように、私は各製品の詳細を表すためのそれぞれのモデルを作成することを考えています。私はここで良い記事を見つけました:https://stackoverflow.com/questions/17122656/database-design-for-multiple-product-types-with-variable-attributes今私はそれをレールにどのように適用するか考えています。 –

答えて

関連する問題