Tasarımdan çok, uygulamadan daha fazlası olan bir sorum var. Ayrıca, herkesin cevabın kaynağını göstermesi için de mutluyum ve memnuniyetle, kendim için araştırmam. Java Etki Alanı nesnelerini Tablolara eşleme (Hazırda Bekletme'yi kullanarak) iyi tasarım
Üç özelliklere sahip 'Resim' adlı bir iş alanı POJO olduğunu varsayalım: yüksek Java ve SQL basitleştirilmiş.class Picture
int idPicture
String fileName
long size
Bunlar normal basit bir ilişki olacağını ben 3 özellik
class Item
int idItem
String itemName
ArrayList<Picture> itemPictures
ile "Öğe" adlı başka bir iş alanı POJO olduğunu düşünelim. 'Resim' nesnesinin, 'un 'Öğe' nesnesinin dışında bulunmayacağını söyleyebilirsiniz. Bir resim sadece belirli bir öğeyi aittir varsayalım, ama bir öğe Şimdi birden fazla resim
olabilir - iyi bir veritabanı tasarımı (3 Normal Form) kullanarak, biz öğeleri ve kendi tablolarda resim koymak gerektiğini biliyoruz. İşte doğru olduğunu varsayalım. Bu nesneler için hazırda eşleme dosyaları yapıyorsanız :
table Item
int idItem (primary key)
String itemName
table Picture
int idPicture (primary key)
varchar(45) fileName
long size
int idItem (foreign key)
İşte benim sorudur. Veri tasarımında, Resim tablonuzun Öğeye başvurmak için bir sütuna ihtiyacı vardır, böylece bir yabancı anahtar ilişkisi korunabilir. Ancak, iş etki alanı nesnelerinizde - Picture nesnesiniz, Öğenin IDI'sine bir başvuru/özniteliği tutmaz ve bunu bilmesi gerekmez. Bir java Picture örneği, bir Item örneğinin içinde her zaman örneğidir. Görüntünün ürününe ait olduğunu öğrenmek istiyorsanız, doğru kapsamdasınız. MyItem.getIdItem() ve myItem.getItemPictures() yöntemini çağırın ve ihtiyacınız olan iki bilgi parçanıza sahip olursunuz.
Hazırda bekletme araçlarının POJO'larınızı otomatik olarak veritabanınıza bakmasını sağlayan bir jeneratöre sahip olduğunu biliyorum. Sorunum, ilk olarak bu deneme/projesinin veri tasarımını planladığımdan kaynaklanıyor. Daha sonra, alan java nesnelerini yapmaya gittiğimde, iyi tasarımın nesnelerin yuvalanmış bir şekilde diğer nesneleri tuttuğunu belirlediğini fark ettim. Bu, bir veritabanı şemasının - tüm nesnelerin (tabloların) düz ve bunların içinde başka hiçbir karmaşık tür barındırmaması şeklinden farklı olarak açıktır. Bunu uzlaştırmanın iyi bir yolu nedir?
sen misin:
(A) Picture.hbm.xml POJO ebeveynin idItem Field bir eşleme vardır ki (hatta mümkünse) hazırda eşleme dosyaları olun
(B) Ekle Resim sınıfında bir int özniteliği idItem'e başvurmak ve örneklemede ayarlamak, böylece tüm tablo alanlarını sınıfındaki yerel öznitelikler olarak göstererek hbm.xml eşleme dosyasının basitleştirilmesi (C) yanlış, Dork.
Ben sizePicture
varken hep
Item
sahip olacağını söylediği gibi gerçekten, onun
Item
başvurmak
Picture
şey gerekmez geliyor bana herhangi bir geri bildirim
@M. McKenzie, cevaplarımız hakkında bize bir geri bildirim verecek misin? –