webForumDet fria alternativet

Dela upp stora entityklasser?

.NET

3 svar · 474 visningar · startad av doggelito

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

Tja!

Har en produktentitetsklass som på papperet har uppåt 50 fält.
Det skulle mao. betyda 50 kolumner i tabellen Products i databasen.
Borde jag dela upp klassen då i mindre klasser istället och joina ihop dem?

Ex. kan vara:
Ett antal av fälten har med sökmotorsoptimering att göra, dvs. fält som meta titel, beskrivning, sökord osv.
Är det vetting att lyfta dessa fält och göra en ProductSearchengine klass?
Och göra samma uppdelning i databasen, dvs. lyfta dessa fält och stoppa in i egen tabell?

Kan nämnas att jag använder NHibernate för att mappa ihop klasserna så själva joinarna är ju inget problem! ;)

Medlem sedan aug. 20003 575 inlägg
#2

Dela upp absolut, allt som har med sökning kan du lägga i en egen klass.
Som du ändå har i samma tabell och använder du dig av NHibernate får du kika på Component som gör det åt dig :).

t.ex.

Product.SearchAttributes

Fast en annan uppdelning kan ju vara bättre, vet ju inte riktigt hur allt ser ut.

Medlem sedan juni 20003 076 inlägg
#3

Component får jag ta och kolla upp! :bire

Men borde jag inte flytta kolumnerna (titel, sökord, beskrivning) ifrån produkttabellen och skapa en ny produkt_sökmotorstabell i databasen?
Eller är det ok att ha så många kolumner i samma tabell?

Medlem sedan aug. 20003 575 inlägg
#4

Sålänge du inte får någon dublettdata så ska man ha det i samma.

Join ger ju lite prestanda försämring om man skall tala om sådant.

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)