addressalign-toparrow-leftarrow-leftarrow-right-10x10arrow-rightbackbellblockcalendarcameraccwcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscontroller-playcredit-cardcrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobe--smallglobegmailgooglegroupshelp-with-circleimageimagesinstagramFill 1languagelaunch-new-window--smalllight-bulblightning-boltlinklocation-pinlockm-swarmSearchmailmediummessagesminusmobilemoremuplabelShape 3 + Rectangle 1ShapeoutlookpersonJoin Group on CardStartprice-ribbonprintShapeShapeShapeShapeImported LayersImported LayersImported Layersshieldstar-shapestartickettrashtriangle-downtriangle-uptwitteruserwarningyahooyoutube

Re: [php-360] DB opdatering i klasser

From: Troels K.
Sent on: Wednesday, June 24, 2009, 1:45 PM
2009/6/24 Jette Derriche <[address removed]>:
> On tir,[masked] at 18:04 -0400, Troels Knak-Nielsen wrote:
>> Med entitet mener jeg en en enhed i en datamodel. Begrebet stammer
>> vidst oprindeligt fra ERM
>> (https://en.wikiped...­). I en objekt
>> orienteret model, vil det v?re de klasser/objekter, som er centrale
>> for modellen; Alts? konkrete ting som Account eller Person. I
>> mods?tning til value objects, er entiteter typisk mutable. Dvs. at en
>> entitet kan ?ndre sine attributter over tid, uden at miste sin
>> identitet. Se evt. Domain Driver Design af Eric Evans. Der findes ogs?
>> en les-l?t version af bogen, der kan downloades gratis p?:
>> https://www.infoq....­
>>
>
> Jeg har hentet den pdf og sidder og l?ser i den. Som jeg forst?r det
> taler man om 'Entiteter' n?r man referere til unikke objekter i modellen
> (personen, bilen, huset) og 'Value Objekter' er de byttesten et objekt
> best?r af (vindue, d?r, tag).
>
> Det vil sige, for at f? et komplet billede af et bestemt objekt med alle
> attributter, kombinerer man en entitet med de n?dvendige VO'er. Korrekt?

Nej, s?dan ville jeg ikke udl?gge det. Forskellen p? et VO og en
Entity er om objektet har sin egen identitet, eller om den udelukkende
repr?senterer en v?rdi. Eks. ville det ikke give mening at g?re en
farve til en entitet; Hvis du ?ndrer p? objektets v?rdier, ?ndrer du
ogs? dets identitet. Eller med andre ord, Hvis du ?ndrer p? farven
r?d, s? den bliver gul, s? er det ikke l?ngere farven r?d. Entiteter
derimod, kan ?ndre alle eller nogle af deres attributter, men stadig
logisk set v?re det samme objekt. En person kan eks. ?ndre sit navn
uden at hun bliver en anden person af den grund. Forskellen p? om
noget er en entitet eller VO er ikke teknisk, s? lad v?re med at kigge
efter en absolut regel her - Det er dit valg som udvikler om du
betragter et objekt som havende identitet eller ej.

S?vel entiteter som VO kan best? af flere entiteter og/eller VO'er. I
s? fald kaldes det "ydre" objekt for en aggregate. S? Hus kan v?re en
aggregate, der indeholder vindue og d?r. Som regel vil aggregates v?re
entiteter, men de kan for sin vis godt v?re VO.

> Mine opdateringer skal laves med ?n databaseforesp?rgsel­. Hvordan g?r
> jeg lige det, ud fra det du skriver her? Jeg har en entitet og dertil de
> VO'er der er n?dvendige i en given situation. Jeg kan jo ikke lave
> klasser der tager h?jde for enhver situation, jeg er n?d til at have en
> eller anden form for dynamik. Nogengange vil man p? en person opdatere
> h?rfarve og antal b?rn, andre gange adresse og uddannelse.

Det lyder som om du st?der hovedet ind i forskellen p? relations
database paradigmet og det objekt orienterede paradigme. I en OO
verden, repr?senterer en entitet et samlet state, s? det mest logiske
ville v?re at gemme alle felter, n?r du gemmer et objekt i databasen.
Ud fra et performance m?ssigt synspunkt har det ringe betydning, og
hvis du er bange for concurrency issues, kan du bruge database
transaktioner til at isolere ?ndringen.

Hvis dit objekt indeholder mange attributter, kan det v?re et tegn p?
at du b?r dele det op i flere del-objekter, evt. samlet i en
aggregate. Du kan s? opdatere de enkelte del-objekter hver for sig.
Dette mapper i ?vrigt fint til relations-database teori om normalform.

--
troels

People in this
group are also in: