FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Mycket flitig postare
|
Hallå
Jag är lite kluven angående tabelldesign... I alla mina projekt, i nästan alla tabeller (beroende på hur de används) så sparar jag användarid (i mitt inloggningssystem), tidpunkt och IP för tidpunkt objektet skapades och dess senaste ändring. Så nästan alla mina tabeller har följande 6 fält: createDate createUser createIP editDate editUser editIP Det känns naturligtvis något enformigt att ha med dessa upprepade i 75% av alla tabeller man har. Istället funderar jag på att göra en tabell "updateLog" som har tre av dessa fält istället (tid, användare och ip), och ett fält som härleder till tabell->rad man har ändrat. Eftersom man bara har tre av fälten så kan man spara 2 rader per tabell->rad (en skapa, och en senast ändrad) eller fler rader om man behöver en komplett logg med historik. Så jag undrar: Tycker ni att det är snyggare att göra en tabell, typ updateLog istället för att varje rad själv ska innehålla detta? Såhär ser jag på saken: Fördelar: Färre upprepningar och mindre databasrelaterad kod (vilket också leder till marginellt snabbare databasdesign) Man kan spara lite minne, för alla rader som aldrig har blivit ändrade behöver bara ha info för när raden är skadad. Det finns ganska smidig potential för att spara mer komplett historik kring ändringar istället för bara senast ändrad (för de tabeller som ev. vill ha sånt stöd) Nackdelar: Extra databasanrop när rader skapas/ändras samt att jag måste joina in en ytterligare tabell när datan ska presenteras. Hur gör ni? Jag funderar på om man också ska optimera bort IP-fältet och koppla det till user istället. |
|||
![]() |
![]() |
Ämnesverktyg | |
Visningsalternativ | |
|
|