Is het een absolute vereiste dat ze kolommen aan de tabel toevoegen , of alleen dat ze extra velden kunnen specificeren om op te slaan? Ik raad je ten zeerste aan iets als Entity-Attribute-Value te overwegen in plaats van de eindgebruiker (beheerders tellen als eindgebruikers) toe te staan om schemawijzigingen aan te brengen.
Voor zoiets als dit zou u een tabel hebben om uw aangepaste velden te definiëren, en vervolgens een veel-op-veel-koppelingstabel waarmee de gebruiker een waarde kan specificeren voor een aangepast veld voor de contactpersoon. Bijvoorbeeld:
Contact
---------
-> ContactId
| FirstName
| LastName
| etc.
|
| ContactField
| --------------
| ContactFieldId <---
| FieldName |
| |
| ContactFieldValue |
| ------------------- |
-- ContactId |
ContactFieldId -------------------------
Value
De details van de implementatie zijn uiteraard aan u (bijvoorbeeld of u ContactId + ContactFieldId
wilt gebruiken als een samengestelde primaire sleutel in ContactFieldValue
), maar dit zou het algemene idee moeten overbrengen.