İlk DAO programımı yazmaya çalışıyorum. Veritabanımda iki tablo oluşturdum: PROJECT ve MILESTONE. Normalde, proje ile dönüm noktası arasında bir birleşme ilişkisi var: Bir projenin birçok kilometre taşı olabileceği ancak bir dönüm noktasının kaçınılmaz olarak sadece TEK projeye etkilenebileceği.JAVA (DAO) ve SQL'de toplu ilişki ilişkisi
Ben iki ana soru var:
1) SQL tablolarda ben projectid bir kısıtlama (yabancı anahtar) eklemek zorunda anlamına ve bağdaştırılabilir kilometre taşı masaya yabancı anahtar? Şimdiye kadar, dönüm noktası tablosunda "projectid" adında bir sütun seçmeyi tercih ediyorum. Bence, bunu yaparsak basit olur.
2) bir dönüm noktası nesnesi oluşturduğunuzda, projectid specifiy için ZORUNLU var, bu yüzden bu yapıcı yazmaya çalıştı:
public Milestone (String name, String description, String projectId) throws SQLException, ClassNotFoundException {
this.name = name;
this.description = description;
ProjectDAOImpl proj = new ProjectDAOImpl();
// "proj.findById(projectId)" is to verify if a real project exist having the specified id
if ((proj.findById(projectId))!= null) {
this.projectId = projectId;
}
else {
return null; //is it correct to do that in a constructor??
}
}
burada probleme ben bu durumu çevirebilir bilmiyorum edilir Java'da: "Belirtilen kimliğe sahip mevcut bir proje varsa, bu projeye ilişkin dönüm noktası bundan etkilenecektir. Değilse, kilometre taşı nesnesi oluşturulmayacaktır". Karşılık gelen bir proje yoksa, kurucuyu nesneyi yaratmamasını nasıl anlatabilirim?