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

Dynamické databázové tabulky v django

Zajímavá otázka, která by mohla být předmětem širšího zájmu.

Vytvoření jedné tabulky na uživatele je noční můrou údržby. Místo toho byste měli definovat jedinou tabulku, do které budou uchovávána data všech uživatelů, a poté využít možnosti databáze k načtení pouze těch řádků, které se týkají uživatele, o kterého vás zajímá (po kontrole oprávnění, pokud je to nutné, protože není dobrý nápad dávat žádnému uživateli neomezené přístup k datům jiného uživatele bez nastavení specifických oprávnění).

Přijetí navrhovaného řešení vyžaduje, abyste vytvořili příkazy SQL obsahující název příslušné tabulky uživatele. Následné dotazy do databáze se budou většinou lišit a to zpomalí práci, protože každý SQL příkaz musí být „připraven“ (musí se zkontrolovat syntaxe, musí být ověřeny názvy tabulek a sloupců, oprávnění žádajícího uživatele pro přístup k pojmenovaným zdrojům musí být autorizován a tak dále).

Při použití jedné tabulky (modelu) lze opakovaně používat stejné dotazy s parametry používanými k obměně konkrétních datových hodnot (v tomto případě jména uživatele, jehož data se hledají). Vaše databázová práce bude postupovat rychleji, budete potřebovat pouze jeden model k popisu dat všech uživatelů a správa databáze nebude noční můrou.

Další výhodou je, že Django (který zřejmě používáte) má rozsáhlý uživatelský model oprávnění a lze jej snadno použít k ověření přihlášení uživatele (až budete vědět jak). Tyto výhody jsou tak přesvědčivé, že doufám, že odstoupíte od svého kacířství a rozhodnete se, že vám projde jediný stůl (a pokud plánujete používat standardní přihlášení Django, vztah s modelem uživatele, který je ústřední součástí jakéhokoli Django projekt).

Neváhejte a položte další otázky, jak budete pokračovat. Zdá se, že jste v práci s databázemi nováčkem, a tak jsem se pokusil předložit odpovídající úroveň podrobností. Existuje mnoho úskalí, jako je tato, pokud nemáte přístup ke znalostním radám. Lidé na SO vám pomohou.



  1. Android Room – Jak resetovat automaticky generovaný primární klíč tabulky při každém spuštění aplikace

  2. Vše, co potřebujete vědět o normalizaci databáze

  3. Připojení k Vertica v IRI Workbench

  4. Jak exportovat data pole clob ve vývojáři Oracle SQL