5

データベースには、エンジニアリングプロジェクトのさまざまなオブジェクトタイプ(モーター、ケーブル、ポンプ、センサーなど)が格納されています。

オブジェクトタイプごとに異なるテーブルを使用するかどうかを検討していますか?(テーブルの山、新しいオブジェクトタイプを追加したいときの苦痛-これは時々起こります...)

または、現在のように、オブジェクトタイプ(ID、名前)を格納するテーブルと、各オブジェクトタイプの可能な属性を格納する別のテーブル、および各属性タイプの各属性の値を格納する別のテーブルが必要ですか?(本物のPITAですが、柔軟性があります。)

誰かが似たようなことをしましたか?考慮すべきポイントは?実装?

4

1 に答える 1

7

エンタープライズアプリケーションアーキテクチャのパターン(Fowler)のコピーを手に入れることができる場合は、オブジェクトリレーショナル構造パターンを見てください。それぞれのアプローチには賛否両論があり、特定のプロジェクトのコンテキストに応じて答えは異なります。

具体的には:

単一テーブル継承

クラステーブル継承

具体的なテーブル継承

シリアル化されたLOB(このパターンを検討する場合は、RDBMSの代わりにNoSQLデータストアの使用も検討してください)

答える必要のある最大の質問は、リレーショナルデータベースがデータに適したデータストアであるかどうかです。データを保存する場所を探しているだけですか?異なるオブジェクトからのデータを相互に関連して使用しますか?優れたシリアル化フレームワーク(Kryoなど)をシリアル化されたLOBに使用し、関係の検索または関連付けに必要なメタデータを標準の列に格納するだけで十分な場合があります。

于 2013-03-13T21:19:34.563 に答える