sql >> Databáze >  >> RDS >> PostgreSQL

Dynamické sloupce tabulky na základě uživatelských preferencí

Obvyklé přístupy k tomu jsou:

  • EAV
  • hstore
  • XML
  • JSON

Viz:

Celá věc „zpřístupnit sloupce ostatním uživatelům“ pouze vyžaduje, abyste si ponechali tabulku „vlastních klíčů“, kterou přidáte, kdykoli uživatel definuje dříve nepoužitý klíč.

Přidávání sloupců pomocí dynamického DDL zní na první pohled rozumně, ale existuje omezení počtu sloupců, které můžete uložit, a toho, jak „široký“ může být řádek. Výkon skenování tabulky se zhoršuje, když přidáváte další sloupce, ačkoli „řídké“ sloupce, které jsou většinou nulové, jsou relativně levné. K přidání sloupce je vyžadován výhradní zámek, což může chvíli trvat, než se dostane do zaneprázdněného systému, ačkoli přidání samotného sloupce je velmi rychlé, pokud není definován jako NOT NULL DEFAULT ... . Zpočátku to bude fungovat docela dobře, ale mám podezření, že později budete litovat.



  1. Jak na výstup dat při použití $stmt->fetch(PDO::FETCH_ASSOC);

  2. java jdbc mysql konektor:jak vyřešit odpojení po dlouhé době nečinnosti

  3. PostgreSQL - Vyberte řádek se složenou maximální hodnotou ze 2 sloupců

  4. OracleParameter a klauzule IN