Vill bara kolla med er om detta är ok.
Har 3 tabeller: projects, activities samt reports med en relation mellan varje, dvs. reports relaterar till activities och activities relaterar till projects, inga konstigheter alltså!
Nu:
Är det ok att lägga in en extra relation från reports till projects bara för att underlätta programmeringen?
Jag behöver ex. hämta all tidrapportering som finns till ett projekt och då blir selecten enklare.
Select Sum(reportedTime) From Reports Where ProjectID = @ProjectID
Eller är det "fel" att lägga in den relationen när den egentligen inte behövs?
SPiNMedlem sedan mars 20007 896 inlägg SELECT SUM(r.reportedTime)
FROM Activities a
INNER JOIN Reports r ON r.activityId=a.id
WHERE a.projectId=@ProjectID
Så det går ju att lösa med en enkel SQL-fråga, utan att lägga in en extra relation. Du bör tänka på s.k. tight och loose coupling även när du databasmodellerar - hur starka band har projekt och rapporter mellan sig? Gäller det enbart tidsrapportering - och hur väsentlig är den för din applikation? Relaterar du åt andra hållet också (rapporter -> projekt)?
p
/ \
a -> r
Gentemot:
p -> a -> r
p = Projects, a = Activities, r = Reports såklart.
Hmm, jag måste ha skrivit nått tokigt i koden tidigare. Jag fick för mig att man inte kunde använda joins i en formula för en property i nhibernate, därav vill jag ha den enklare selecten, men nu när jag testade igen att skriv joinen så funkar det! :)
Tack i all fall! :bire