webForumDet fria alternativet

Klassuppbyggnad för entiteter

.NET

4 svar · 601 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Frågan#1

Hur gör jag nu?
I databasen har jag två tabeller, Menus och Contents med relationen 'MenuID' i båda.
Jag har också en vy: vw_Contents som visar kolumner från i huvudsak tabellen Contents men även t.ex. 'MenuName' från Menus.

I mitt .net projekt vill jag sedan bygga upp klasser på detta.
Jag har än så länge gjort en menyklass som är identiskt med tabellen Menus.

Nu ska jag göra klassen för contents, men då dök denna fundering upp:
Ska jag göra en klass med egenskaper mot tabellen Contents eller mot vyn vw_Contents?

Om jag gör den mot vyn så kommer ju både denna klass och menyklassen att innehålla t.ex. egenskapen: MenuName, är det dåligt?

Å andra sidan känns det ju smidigare:
Om jag visar en massa Contentinfo och vill hämta upp MenuName så finns den redan där, annars måste jag instansiera menyklassen och hämta namnet därifrån! :l

Kan nån vara snäll och reda ut detta åt mig! :stud :)

Medlem sedan dec. 19996 721 inlägg
#2

Du ska överhuvud taget inte designa dina klasser efter hur databasen ser ut, utan precis tvärtom. Måhända får man göra någon kompromiss på vägen, men grundtanken ska vara att du gör klasser som uppfyller sitt syfte och skapar en databasarkitektur tillhandahåller lagring av dessa.

Medlem sedan juni 20003 076 inlägg
#3

Aha, men bör de inte bli ganska lika i slutändan i de flesta fall?!
I alla fall när det gäller "små enkla" klasser.

Om man t.ex. tar nått enkelt: en enkel gästbok! :)
Databasen är ju då ganska given.
Tabell: Guestbook
Kolumner: GuestbookID, Heading, Message, Email, Url ...
Kommer inte entitetsklassen Guestbook då att innehålla just dessa egenskaper?

Medlem sedan dec. 19996 721 inlägg
#4

doggelito skrev:

Aha, men bör de inte bli ganska lika i slutändan i de flesta fall?!
I alla fall när det gäller "små enkla" klasser.

Det blir det oftast, ja.

doggelito skrev:

Om man t.ex. tar nått enkelt: en enkel gästbok! :)
Databasen är ju då ganska given.
Tabell: Guestbook
Kolumner: GuestbookID, Heading, Message, Email, Url ...
Kommer inte entitetsklassen Guestbook då att innehålla just dessa egenskaper?

Nej, så ska man inte tänka. Du ska designa dina klasser utifrån dina krav. Tabellstrukturen kommer sedan. Klasserna är inte till för att hjälpa databasen. Databasen är till för att hjälpa klasserna.

Medlem sedan juni 20003 076 inlägg
#5

emission skrev:

Klasserna är inte till för att hjälpa databasen. Databasen är till för att hjälpa klasserna.

Okidoki!
Jag som alltid börjat med databasen, ja, då blir det till att tänka om då! :)

Tack för input. :bire

250 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)