Ik ben een registratiesysteem aan het uitwerken voor een hosting provider, maar ik twijfel of mijn database ontwerp wel in orde is. Laat me even de situatie schetsen :
Ik zal beginnen met wat het laatste schema isd dat ik op papier heb, of toch het deel ervan wat van belang is :
[DOMAINS]
ID
NAME
EXT_ID
REG_TYPE_ID
[DOMAIN_REGISTRATIONS]
ID
REG_DATE
EXP_DATE
REG_YEARS
ORDER_YEARS
PRICE
REGISTRAR_PRICE
[DOMAIN_OPTIONS]
ID
ACTIVATION_DATE
HOSTING_ID
NS1_ID
...
[INVOICES]
ID
INVOICE_NR
INVOICE_DATE
PRICE
PAY_TYPE
PAY_DATE
[ORDERS]
ID
INVOICE_ID
ORDER_NR
ORDER_DATE
ORDER_STRING
DOMAIN_ID
DOMAIN_REG_ID
DOMAIN_OPTION_ID
Ik ben dus niet zeker of dit wel de ideale manier is. Ik kan me voorstellen dat het voor sommigen raar lijkt dat er zo veel "dates" in voorkomen. Wel, de hosting provider wil (zeer veel) historieken bijhouden zodat hij heel goed kan controleren wat er allemaal gebeurd is met hostings/domeinen.
Wat extra uitleg :
Laten we beginnen bij het domein. Deze heeft een naam (bijv. tweakers) en een extentie-id. Ook het registratie-type wordt bijgehouden, dit is hoe het domein terecht gekomen is bij de hosting provider (nieuwe registratie - transfert - ...).
In domain_registrations staat dan de informatie over de registratie van het domein: wanneer deze is gebeurd, wat de expiration date is, ... Domain_options bevat alle informatie over wat er aan het domein hangt: een hosting, een forwarding, ...
Verder zijn er nog de invoices (facturen) met al hun informatie. En aan een factuur hangen dan 1 of meerdere orders. Dit is ook zo in de bestaande boekhouding dus dat leek me de beste oplossing.
Omdat er bij een upgrade van de hosting bijvoorbeeld de registration informatie ongewijzigd blijft en dus enkel de options veranderen heb ik in de orders tabel een verwijzing naar het domein, de registratiegegeven en de options gestoken. Als ik dan alle orders van een bepaald domein opvraag kan ik mooi een historiek verkrijgen. In ORDER_STRING staat de string zoals hij van de ASP applicatie komt. Aan de hand van die string kan ik dus EXACT zien wat er toen besteld is en de combinatie van DOMAIN_REG_ID en DOMAIN_OPTION_ID geeft me ook weer exact de laatste gegevens over wat die klant van dat domein heeft bij de provider.
Voor degenen die denken van maar allez hij is de koppeling met de klanten vergeten, dit is zeker niet het geval. Dit gebeurt in andere tabellen die aan DOMAINS hangen, maar ik ben vrij tot heel zeker dat ik dat op de best mogelijke manier heb gedaan.
Ik heb niet echt een probleem dus, maar ik voel me niet 100% met dit deel van het schema dus wou ik even iemand anders zijn mening.
Alvast bedankt!
Ik zal beginnen met wat het laatste schema isd dat ik op papier heb, of toch het deel ervan wat van belang is :
[DOMAINS]
ID
NAME
EXT_ID
REG_TYPE_ID
[DOMAIN_REGISTRATIONS]
ID
REG_DATE
EXP_DATE
REG_YEARS
ORDER_YEARS
PRICE
REGISTRAR_PRICE
[DOMAIN_OPTIONS]
ID
ACTIVATION_DATE
HOSTING_ID
NS1_ID
...
[INVOICES]
ID
INVOICE_NR
INVOICE_DATE
PRICE
PAY_TYPE
PAY_DATE
[ORDERS]
ID
INVOICE_ID
ORDER_NR
ORDER_DATE
ORDER_STRING
DOMAIN_ID
DOMAIN_REG_ID
DOMAIN_OPTION_ID
Ik ben dus niet zeker of dit wel de ideale manier is. Ik kan me voorstellen dat het voor sommigen raar lijkt dat er zo veel "dates" in voorkomen. Wel, de hosting provider wil (zeer veel) historieken bijhouden zodat hij heel goed kan controleren wat er allemaal gebeurd is met hostings/domeinen.
Wat extra uitleg :
Laten we beginnen bij het domein. Deze heeft een naam (bijv. tweakers) en een extentie-id. Ook het registratie-type wordt bijgehouden, dit is hoe het domein terecht gekomen is bij de hosting provider (nieuwe registratie - transfert - ...).
In domain_registrations staat dan de informatie over de registratie van het domein: wanneer deze is gebeurd, wat de expiration date is, ... Domain_options bevat alle informatie over wat er aan het domein hangt: een hosting, een forwarding, ...
Verder zijn er nog de invoices (facturen) met al hun informatie. En aan een factuur hangen dan 1 of meerdere orders. Dit is ook zo in de bestaande boekhouding dus dat leek me de beste oplossing.
Omdat er bij een upgrade van de hosting bijvoorbeeld de registration informatie ongewijzigd blijft en dus enkel de options veranderen heb ik in de orders tabel een verwijzing naar het domein, de registratiegegeven en de options gestoken. Als ik dan alle orders van een bepaald domein opvraag kan ik mooi een historiek verkrijgen. In ORDER_STRING staat de string zoals hij van de ASP applicatie komt. Aan de hand van die string kan ik dus EXACT zien wat er toen besteld is en de combinatie van DOMAIN_REG_ID en DOMAIN_OPTION_ID geeft me ook weer exact de laatste gegevens over wat die klant van dat domein heeft bij de provider.
Voor degenen die denken van maar allez hij is de koppeling met de klanten vergeten, dit is zeker niet het geval. Dit gebeurt in andere tabellen die aan DOMAINS hangen, maar ik ben vrij tot heel zeker dat ik dat op de best mogelijke manier heb gedaan.
Ik heb niet echt een probleem dus, maar ik voel me niet 100% met dit deel van het schema dus wou ik even iemand anders zijn mening.
Alvast bedankt!
