Er det et absolut krav, at de føjer kolonner til tabellen , eller bare at de kan angive yderligere felter til at gemme? Jeg vil kraftigt foreslå, at du overvejer noget som Entity-Attribute-Value i stedet for at lade slutbrugeren (administratorer tæller som slutbrugere) foretage skemaændringer.
For sådan noget vil du have en tabel til at definere dine brugerdefinerede felter og derefter en mange-til-mange-tilknytningstabel for at give brugeren mulighed for at angive en værdi for et brugerdefineret felt for kontakten. For eksempel:
Contact
---------
-> ContactId
| FirstName
| LastName
| etc.
|
| ContactField
| --------------
| ContactFieldId <---
| FieldName |
| |
| ContactFieldValue |
| ------------------- |
-- ContactId |
ContactFieldId -------------------------
Value
De nærmere specifikationer for implementering er naturligvis op til dig (for eksempel om du vil bruge ContactId + ContactFieldId
som en sammensat primærnøgle i ContactFieldValue
), men dette burde få den generelle idé igennem.