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. |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Flitig postare
|
Jag föredrar updateLog systemet. Detta system gör så att man (jag) kan spara logg om vad som sker oberoende vilken tabell.
En idé är att spara: date user ip loggid (alternativt) note Vill du veta vem som skapade en datapost ollar man helt enkelt bara vad första date och user är för ett loggid. Ex. Vi har ett cms som låter användare skapa och redigera sidor. Kalle, skapar en ny sida, i loggen får denna händelse loggid: 1, date: 200810080938, ip: 255.1.99.22, user: Kalle Sedan kommer Anton och gör en uppdatering, då skapas en ny loggpost, loggid är fortfarande 1, date: 200810090805, ip: 255.1.12.23, user: Anton loggid, skulle kunna vara sidans id i databasen. På så vis kan vi enkelt se all information om just denna sida, när den skapades och när den blivit ändrad. Känns onödigt att spara create date, ip och user varje gång någon uppdaterar. Det kan man istället bara kolla bakåt på första posten. Bara en snabb reflektion. ![]() |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Mycket flitig postare
|
OK tack för input. Men jag sparar inte de tre create-fälten mer än i min INSERT-fråga... min UPDATE ändrar de andra tre (edit...).
Men det kanske är förnuftigt att göra en egen loggtabell... Det känns rent allmänt lite snyggare. |
|||
![]() |
![]() |
Svara |
Ämnesverktyg | |
Visningsalternativ | |
|
|