Hej jag har ett enkelt problem som kan lösas på olika sätt enligt olika personer som jag pratat med.
Frågan är följande.
Jag har följande objekt.
Person
Anställd
Spelare
Användarkonto
Polis
Projektledare
osv osv.
Poängen är hur dessa objekt skall relateras med Person objektet.
Skall det vara ett arv eller skall det vara en relation?
Vissa påstår att det är en relation för att Anställd, Spelare, Projektledare osv är roller som en person kan inneha.
Å andra sidan kan man som Anställd, Spelare, Projektledare osv ha en viss historik säg att man vill spara på projekt som en viss person varit projektledare i, eller statistik för vad en Spelare har gjort i ett lag då kan man inte byta ut personen. Men isåfall kanske man har ett objekt där man inte kan byta ut personen på?
Hur ska man tänka?
LaspMedlem sedan juli 200012 980 inlägg Allt som du kan sätta tid på bör väl ha en sådan! och då vara en relation!
Person är du alltid dock med attributen född och död som är tider.
Men anställd är ju en person under en bestämd tid där vaderbörande har en innesluten roll som exempelvis Polis.
Rita upp det skissartartatd så kanske det blir en bra bild!
erkaMedlem sedan dec. 19996 522 inlägg Det beror ganska mycket på vad de ska användas till, vissa av dem är ju klara roller, vissa är klara entiteter i arv.
Om vi går på spåret
Spelare så säger vi att en spelare kan vara en Coach under en tid visst Spelare är en person och Coach en roll, men säg att man vill spara saker som Coachen åstakommit t.ex. vilka matcher han har varit Coach kanske.
Visst en kompis sa att man kan ha en Coach och en Spelare som är samma instans när det gäller person om man använder sig av Decorator pattern, men det tyckte jag blev lite väl komplext.
Slutar en person som anställd så är ju personen inte anställd längre :S...
LaspMedlem sedan juli 200012 980 inlägg Det är därför som man måste ha tidsbegrepp med för respektive roll, eftersom en person kan vara både spelare och coah under samma tidsepok eller överbryggande.
Till deras roller knyter man sedan de prestationer som man vill lagra.
Ja så då blir det en relation mao.
Spelare.Person.Name
Coach.Person = Person
Sedan sparas Coach objektet och man sparar historiken i Coach objektet... Personen kommer alltid vara kopplad till Coach.Person ??
TomasJMedlem sedan feb. 200563 inlägg
Nickemannen skrev:
...problem som kan lösas på olika sätt enligt olika personer ...
...
Vissa påstår att det är en relation för att Anställd, Spelare, Projektledare osv är roller som en person kan inneha.....
Angående olika sätt att hantera roller så finns det en relevant artikel som heter Dealing With Roles (PDF-länk, som kan hittas via Fowler's länkar till Analysis Patterns).
/ Tomas