Kom ihåg mig?
Home Menu

Menu


Många kolumner i databas-tabell. Smart eller dumt?

Ämnesverktyg Visningsalternativ
Oläst 2009-09-13, 21:52 #1
Osiriss avatar
Osiris Osiris är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2006
Inlägg: 391
Osiris Osiris är inte uppkopplad
Flitig postare
Osiriss avatar
 
Reg.datum: Apr 2006
Inlägg: 391
Post Många kolumner i databas-tabell. Smart eller dumt?

Tänk dig ett publiceringsverktyg med exempelvis följande sidmallar:
  • Vanlig webbsida
  • Kalender-info
  • Länk-resurs
  • Ärendehanterings-info
  • Bloggpost
  • etc etc
Bör man lägga alla sidtypers speciella egenskaper i samma tabell i databasen eller borde jag dela upp dem i egna tabeller beroende på sidtyp?

Det riskerar att bli säkert 50 fält i tabellen, men det kanske uppväger att ställa SQL-frågan mot flertalet unika tabeller?
Andra förslag?
Osiris är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-09-13, 22:04 #2
najks avatar
najk najk är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2005
Inlägg: 1 224
najk najk är inte uppkopplad
Har WN som tidsfördriv
najks avatar
 
Reg.datum: Oct 2005
Inlägg: 1 224
Mitt tips: Lägg en övergripande tabell och dela upp datat i flera tabeller beroende på typ. Tänk på vad som blir lättast att utöka med fler funktioner senare. Titta även på att slå ihop sökningar ur tabeller, typ join..
najk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-09-13, 22:21 #3
Osiriss avatar
Osiris Osiris är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2006
Inlägg: 391
Osiris Osiris är inte uppkopplad
Flitig postare
Osiriss avatar
 
Reg.datum: Apr 2006
Inlägg: 391
Tack för input!

Är inne på detta. Tänkte ha en tabell vardera för exempelvis länkar, kalenderinlägg, foruminlägg, bilder i gallerier etc.

Samtidigt håller jag på och gör ett PageData-objekt som programmeringsmässigt ska innehålla alla egenskaper som respektive sidtyp ska kunna ha och då blir det lite skumt med antalet SQL-frågor som ställs vid kollektioner av sidor av olika sidtyper...

Är bekant med hur det ser ut i exempelvis EPiServer men så j-vla db-intresserad är jag inte så jag orkar reda ut den strukturen för att göra något liknande.

Tips?
Osiris är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-09-13, 23:14 #4
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Normalisera tabellerna efter 3:e normalformen så löser sig detta med automatik, då får du bra struktur.

Dvs varje värde ska vara atomärt (odelbart) som förnamn, efternamn, postnr, postort m.m.

Sen ska du se till att varje atomärt värde endast är beroende av primärnyckelt, hela primärnyckeln och ingenting annat än primärnyckeln, då har du löst problemet.
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-09-13, 23:25 #5
Osiriss avatar
Osiris Osiris är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2006
Inlägg: 391
Osiris Osiris är inte uppkopplad
Flitig postare
Osiriss avatar
 
Reg.datum: Apr 2006
Inlägg: 391
Det är ungefär vad jag gjort, men om man gör kollektioner av sidor som har olika sidtyper kan det bli massor med SQL-frågor. Eller?
Osiris är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-09-14, 02:47 #6
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Citat:
Ursprungligen postat av Osiris Visa inlägg
Det är ungefär vad jag gjort, men om man gör kollektioner av sidor som har olika sidtyper kan det bli massor med SQL-frågor. Eller?
Du kan alltid göra en VIEW eller stored procedure om du vill göra komplexa SQL-frågor mot databasen, både VIEW och STORED PROCEDURE förkompileras när man sparar dem i databasen så de blir blixtsnabba om du har rätt optimerade index.

Dessutom blir de enklare att anropa.

Du kan ju bygga minst en VIEW för varje Page-typ som du vill ha...

Senast redigerad av Conny Westh den 2009-09-14 klockan 02:55
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-09-14, 06:36 #7
RickardPs avatar
RickardP RickardP är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 515
RickardP RickardP är inte uppkopplad
Mycket flitig postare
RickardPs avatar
 
Reg.datum: Jun 2004
Inlägg: 515
Du kan även ha en enkel tabell med sidmallstyper, sedan en tabell med inställningar av sidmallstyper där du har en kollumn som säger vilken sidmallstyp det är, en som säger vilken inställning det är och en som säger vilket värde inställningen har.

Inställningarna går också att ha en beskrivande tabell för enskilt.

Då kan man lägga in flera inställningar för sidmallstyperna utan att behöva editera tabellens struktur.

Kan se ut så här:

Sidmall
- ID
- Namn

Inställningar
- ID
- SidmallID
- EgenskapsID
- EgenskapsVärde

Egenskap
- ID
- Beskrivning


Något i den stilen fast då självklart på engelska borde fungera ganska bra, alla gemensamma kolumner kan dessutom då liga i Sidmall tabellen och endast dem som skiljer dem åt ligger i övriga.
RickardP är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 13:11.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017