1

このタイトルをどのように表現するのが最善か、または問題を説明するのが最善かどうかはわかりませんでしたが、ここに...

一緒にリンクできるいくつかのテーブルを持つ SQL データベースを設計しています。すなわち

TABLE a ID1 CAN BE JOINED TO TABLE b ID1
TABLE b ID2 CAN BE JOINED TO TABLE c ID1
TABLE d ID1 CAN BE JOINED TO TABLE a ID5

基本的に、任意のテーブルの任意の行を、任意のテーブルの他の任意の行 (それ自体を含む) にリンクできます。

次の列を持つ単一の「接続」テーブルを作成するつもりでした...

Table 1 Name VARCHAR()
Table 1 ID   INT()
Table 2 Name VARCHAR()
Table 2 ID   INT()

多対多の結合テーブルとして機能しますが、テーブルの列と接続の両側の ID があります。ただし、これはベストプラクティスではないと感じています。何かご意見は?接続の順列ごとに個別のテーブルを作成する必要があるとは信じられません!

4

1 に答える 1

0

この問題は一般的であり、正規化されたモデルと非正規化されたモデルに対立します。

メタモデル (すべてのリレーションを格納する 1 つのテーブル) を実装するには、最も一般的に次の問題があります。

  • 0..n リレーションの場合のリクエストの遅延 (少なくとも)
  • 関係制約のネイティブ管理なし (カスケード上...)
  • 関係を解析するには、追加の適用レイヤーが必要です

それを気にしないのであれば、解決策は問題ありません。

乾杯、S.

于 2012-11-20T12:45:28.740 に答える