Ik ben (op werk) bezig met het programmeren van een webshop.
Op basis van de gekozen betaalmethode moet een bepaald formulier weergegeven worden. (Denk bij iDeal aan de dropdown met "Kies uw bank" en bij creditcard aan "creditcard nummer", "CVC" etc etc)
Zelf dacht ik aan de volgende MySQL tabel:
payment_method
- id
- name
- status
payment_method_form
- id
- name
linktabel
- payment_method_id
- payment_method_form_id
Zo kan je voor elke method een of meerder forms aanzetten (deze worden in de applicatie gemapped naar een zend form).
Nu was dit het voorstel van mijn collega:
payment_method
- id
- name
- options
- status
Waarbij options een text veld is en een yaml string bevat met daarin alle opties. Met het argument dat dit flexibeler is omdat je naast forms ook andere dingen aan de betaalmethode kan koppelen zonder je tabelstructuur aan te passen.
Mijn vraag is, wat zouden jullie de beste oplossing vinden en hoe zou je dat ten opzichte van het technisch opperhoofd beargumenteren.
De argumenten die ik tot nu toe bedacht heb:
- Door meerdere tabellen te hebben hou je overzicht wat er aan een betaalmethode gekoppeld is;
- Je kan met simpel een bepaalde optie uit/aanzetten globaal met sql;
- Een veld gebruiken voor meerdere typen data wordt in mijn ervaring meestal een rotzooi.
Op basis van de gekozen betaalmethode moet een bepaald formulier weergegeven worden. (Denk bij iDeal aan de dropdown met "Kies uw bank" en bij creditcard aan "creditcard nummer", "CVC" etc etc)
Zelf dacht ik aan de volgende MySQL tabel:
payment_method
- id
- name
- status
payment_method_form
- id
- name
linktabel
- payment_method_id
- payment_method_form_id
Zo kan je voor elke method een of meerder forms aanzetten (deze worden in de applicatie gemapped naar een zend form).
Nu was dit het voorstel van mijn collega:
payment_method
- id
- name
- options
- status
Waarbij options een text veld is en een yaml string bevat met daarin alle opties. Met het argument dat dit flexibeler is omdat je naast forms ook andere dingen aan de betaalmethode kan koppelen zonder je tabelstructuur aan te passen.
Mijn vraag is, wat zouden jullie de beste oplossing vinden en hoe zou je dat ten opzichte van het technisch opperhoofd beargumenteren.
De argumenten die ik tot nu toe bedacht heb:
- Door meerdere tabellen te hebben hou je overzicht wat er aan een betaalmethode gekoppeld is;
- Je kan met simpel een bepaalde optie uit/aanzetten globaal met sql;
- Een veld gebruiken voor meerdere typen data wordt in mijn ervaring meestal een rotzooi.