sql >> Databáze >  >> RDS >> Sqlserver

Jaký je nejlepší způsob, jak umožnit uživateli přidávat sloupce do své databáze za běhu?

Je absolutním požadavkem, aby přidali do tabulky sloupce? , nebo jen to, že budou moci zadat další pole k uložení? Důrazně bych vám doporučil zvážit něco jako Entity-Attribute-Value spíše než umožnit koncovému uživateli (správci se počítají jako koncoví uživatelé) provádět změny schématu.

K něčemu takovému byste měli tabulku pro definování vlastních polí a potom tabulku přidružení many-to-many, která uživateli umožní zadat hodnotu pro vlastní pole pro kontakt. Například:

    Contact
    ---------
 -> ContactId
|   FirstName
|   LastName
|   etc.
|
|                        ContactField
|                        --------------
|                        ContactFieldId <---
|                        FieldName          |
|                                           |
|   ContactFieldValue                       |
|   -------------------                     |
 -- ContactId                               |
    ContactFieldId -------------------------
    Value

Specifika implementace jsou samozřejmě na vás (například zda použijete ContactId + ContactFieldId jako složený primární klíč v ContactFieldValue ), ale to by mělo objasnit obecnou představu.



  1. Odstranění duplicitních řádků z tabulky v Oracle

  2. Jak provedu uloženou proceduru v úloze SQL Agent?

  3. MYSQL last_insert_id() a souběžnost

  4. Jak vybrat konkrétní sloupec z databáze místností s konkrétním parametrem v dotazu na místnost?