オブジェクトを格納するために、db4o データベースの周りに素敵なリポジトリ レイヤーを構築しました。オブジェクトは、1 対多の関係でオブジェクトにProduct
関連付けられManufacturer
ます。
public class Manufacturer
{
public string Name { get; set; }
}
public class Product // simplified
{
public string Name { get; set; }
Manufacturer Manufacturer { get; set; }
}
これまでのところ、私は db4o が本当に好きです。私が抱えている問題は、ID に頼らずにデータの重複を防ぐことです。
SQL Server を使用してメーカーなどの参照を実装すると、データ モデルに一意の ID フィールドが含まれ、クラスがManufacturerIDProduct
で汚れてしまいます。db4o のようなオブジェクト データベースを使用すると、リレーショナル DB とオブジェクト間のインピーダンスの不一致が減少するのではないかと想像しましたが、ID がないと、オブジェクトを編集するときにオブジェクトを別のオブジェクトと区別する方法がありません。
データを複製せずに製品間でメーカーを共有するエレガントな方法はありますか? それとも、リレーショナル DB を使用する必要がありますか?