FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Mycket flitig postare
|
Har ett bokningsformulär där mina klienter vill kunna lägga till egna fält. Har kommit fram till att det finns två lösningar på detta:
1: Köra ALTER TABLE och lägga till eller ta bort fält i min "original"-tabell... 2: Skapa relationstabeller: extra_fields Kod:
field_id name type Kod:
reservation_id field_id data Alternativ till (1): Ha en originaltabell och en extra_fields-tabell som man kör alter table på. Vilket av dessa alternativ är att föredra? Vi snackar 5000-10000 rader och uppåt i tabellen. |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Flitig postare
|
Jag tycker i 9 fall av 10 att det är bättre att ha en relation istället för att utöka en tabell med fält, speciellt om fälten ändras ofta.
|
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Mycket flitig postare
|
Japp, kände också det. Blir till att bygga om lite av admin-panelen
![]() |
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Har WN som tidsfördriv
|
Det du beskriver nu kallas EV modellen, Entry-Value och är vanligt i databassammanhang när man vill kunna ha många egenskaper. Jag har en sådan tabell och den innehåller just nu 9 miljoner rader och det tar inte mer än ett par sekunder att gå igenom.
Om du ska ha olika fälttyper kan du fundera på om du ska ha en INT och en VARCHAR exempelvis för att optimera databasen. |
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Mycket flitig postare
|
Aha, studiox. Det hade jag inte tänkt på. Det kan ju vara en smart grej med ett string_value- och en int_value-fält.
|
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Administratör
|
Större nytta skulle det göra att spara heltal/tal i en tabell och strängar i en annan. Att ha två fält i en värdetabell tror jag bara skulle göra skada förutom i specialfall (stort bearbetningsbehov av ints/floats över stort antal rader, olika indexeringsbehov beroende på variabeltyp osv).
|
||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Har WN som tidsfördriv
|
Citat:
|
||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Administratör
|
Jag förstår inte riktigt hur du tolkade det så, men om jag var otydlig så var vad jag ville säga att om det fanns extra anledning att indexera antingen strängvärden eller heltalsvärden så skulle 2 kolumner i värdetabellen hjälpa då man kan välja indexera antingen strängvärden eller heltalsvärden i och med att de ligger i just skilda fält. Specialfall, som sagt.
|
||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Medlem
|
Finns en tredje variant. "NoSQL". (http://en.wikipedia.org/wiki/NoSQL)
Och man kan köra NoSQL i en relationsdatabas om man så känner för det och där kan man skapa index för fälten också. Då blir relationsdatabasen mer en ren lagringsyta (förutom för indexena då). |
||
![]() |
![]() |
![]() |
#10 | ||
|
|||
Klarade millennium-buggen
|
Citat:
|
||
![]() |
![]() |
Svara |
|
|