私は現時点では新しいアプリケーションの設計段階にあります。私はいくつかのアドバイスをソースに集めることができるかもしれないと思っている設計質問を少ししています。SQL ServerのXMLデータ型を使用する方法と使用方法
私は独自の接続を使用してさまざまなデバイスに接続していますが、各デバイスはマシンの種類に応じて良いクラスを解析するデータの集合で応答します。一部のマシンは他のマシンとは異なるデータで応答しますが、共通の根拠があります。このため、単純な継承モデルがあります。
- (abstract) Machine
- Machine Type A
- Machine Type B
- Machine Type C
「マシン」タイプには、すべてのマシンに共通の名前、IPアドレスなどのプロパティがあります。
この時点で私は自分のデータベースを設計するようになりました。クラスごとに異なるテーブルを用意することは望ましくありません。さらに、私は時間の経過とともにシステムに追加される新しいマシンに柔軟に対応したいと考えています。
私の考えは、「マシン」の共通の機能の列を持つテーブルと、次に特定のマシンに関する残りの情報を含むXMLフィールドを持つことでした。このようにして、データベースに冗長な "ヌル"値を持たずに柔軟性を保つことができたと思いました。
これは、マシンが記録される30または40の異なるフィーチャを有する可能性があるので、これはまた、カラムのカウントダウンを維持する。
これまでXMLデータ型を使用したことがないので、私はこの問題を賢明なやり方で考えていますか? XMLフィールドを使用する意味は何ですか?
XMLのフィールドで検索する可能性は低く、一般的なフィールドでしか検索できないことにも注意してください。
EAVモデルを代わりに使用することを提案しますか? – KingCronus
@AdamKing:** NO !! **なぜ[ここ(ポイント番号3)]を参照してください(http://www.simple-talk.com/sql/database-administration/five-simple--database-design-エラー - あなたがすべきである/)、[ここ](http://www.simple-talk.com/sql/t-sql-programming/avoiding-the-eav-of-destruction/)恐ろしく間違ってしまったEAVシステムの](http://www.simple-talk.com/content/article.aspx?article=292) - ここではしないでください! –
私は今尋ねてうれしい! – KingCronus