sql >> Databáze >  >> RDS >> Mysql

Databáze v databázi (návrh tabulky)

Možná se budete chtít podívat na model hodnoty atributu entity (EAV) design pro vaše data.

V zásadě můžete mít tabulku s názvy tabulek a některými dalšími metadaty o tabulkách.

Poté můžete pro každý z těchto řádků vytvořit tabulku, která bude obsahovat data sloupců, jako je datový typ a název.

Potom máte tabulku, do které vkládáte hodnoty pro každý sloupec do dlouhé tabulky.

To vám umožňuje dynamicky vytvářet tabulky nebo dynamicky přidávat/odebírat řádky.

Pro srovnání relačních a EAV se můžete podívat na tuto otázku:

Databáze hodnot atributů entity vs . přísný relační model elektronického obchodu

Pokud však chcete mít na tato data relační pohled, budete muset vytvořit spouštěče, které vám pomohou udržovat zobrazení aktuální, a to může být hodně práce, aby to dobře fungovalo. Pokud nepotřebujete vztahový pohled, pak byste měli být v pořádku.

Dalším způsobem, jak toho dosáhnout, je databáze NoSQL (http://en.wikipedia.org/wiki/ NoSQL ), protože schéma nemusí být nastaveno, a tak můžete pouze uložit sloupce, které potřebujete pro daný řádek.

V tomto bodě bych šel cestou NoSQL, protože existuje mnoho databází, které mohou fungovat, a přepracování, které musíte udělat, je minimální.



  1. Vložení NULL/prázdného řetězce pomocí knihovny libpqxx

  2. SQL Injection a klauzule LIMIT

  3. Zdá se, že funkce MySQL SHA2 nefunguje

  4. Array_agg v postgres selektivně uvozovek