4

配列の実装方法には 2 つのオプションがあるようですが、どちらを使用すればよいかを知りたいです。

  • ARRAY データ型を使用し、(私が理解していることから) データ オブジェクトをデータベースに効果的にシリアル化します (私の場合はラップされたプリミティブ型です。これを機能させる別の方法はわかりません)。

  • 個別のテーブルを使用し、配列項目ごとに外部キーをマップします。

これ(特にH2)の経験がある場合、どれをお勧めしますか?

4

1 に答える 1

4

多くの場合、配列フィールドはデータベースでは禁止されており、正規化の原則に反することがよくあります。データの目的に応じて、親テーブルとの fk リレーションを持つ別のテーブル、または独立したテーブル (単一の項目が複数回発生する可能性がある場合、つまり、のn-m代わりにリレーションシップを使用する場合に適していますn-0)のいずれかにデータを格納する必要があります。それらと親テーブルの間の関係には fk-fk 結合テーブルを使用します。

ただし、SQL/JDBC ではSELECT、DB が SQL コンストラクト/関数をサポートしているかどうかに応じて、多くの場合配列として使用できます。たとえば PostgreSQL では、 を使用ARRAY()して Java/JDBC で取得できる関数を使用できますResultSet#getArray()

于 2010-04-06T12:18:23.657 に答える