Citat:
Ursprungligen postat av allstars
Rätt smalt designad tabell måste jag säga.
Så här skulle jag gjort en tabell för kuponger
ID (int eller guid) - Index
Identifier (varchar) - Den kod som användaren fyller i
Enabled (bool) - om kupongen är aktiv
ValueSEK (int) - Det som dras av, i SEK
ValuePercent (decimal) - Det som dras av, i procent
IssueDate (datetime) - När är den skapad
ValidToDate (datetime) - Hur länge den ska vara giltig
IssuedToUser (int) - Om kupongen gäller en viss användare, annars 0
ValidCount (int) - Hur många kuponger som finns, 0 för obefintliga
MultiplePerUser (bool) - Om samma användare kan använda kupongen flera gånger
Möjliga påbyggnationer är att man kan ange produktID som kupongen gäller för.
Sedan gärna komplettera med en tabell som säger vilken användare som använt vilken kod, för kontrollera om användaren använt den innan. Då räknar man inte ner ValidCount utan slår upp i den andra tabellen och jämför med värdet i ValidCount.
|
Det känns betydligt vettigare med en tabell med själva kuponginformationen och sedan ytterligare en kopplingstabell kopplad till användartabellen där information om själva transaktionen som t.ex. belopp, datum och vilken användare som använt kupongen(både användar-id och kupong-id).
Man vill separera entiteten(kupongen) med den här typen av metadata. En kupongkod ska bara finnas på ett ställe och om den används flera gånger så ska man skapa flera referenser, inte flera rader i kupongtabellen.