sql >> Database teknologi >  >> RDS >> Sqlserver

Hvad er den bedste måde at give en bruger mulighed for at tilføje kolonner til deres database på?

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.



  1. Optælling af tabelpartitioner i Postgres-tabellen

  2. Styret acyklisk graf:find alle stier fra en bestemt knude

  3. Opret forbindelse til Oracle-databasen i dotnet mvc-applikationen

  4. Erstat flere tegn i SQL