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

vytvořit tabulku milionů v databázi?

Pokud potřebujete ve své databázi milion tabulek, děláte to špatně.

Tabulky jsou určeny k reprezentaci strukturálně a koncepčně odlišných dat. A odmítám uvěřit, že ve své aplikaci pracujete s milionem různých konceptů.

Někdy se začátečníci domnívají, že by například měli vytvořit tabulku pro každého uživatele. Ale „uživatel“ je jeden pojem a pro každého uživatele ukládáte stejné informace (například jméno, e-mail, uživatelské jméno, heslo), takže by to mělo být jeden tabulka, kde je každý uživatel pouze samostatný řádek.

Zní to, jako byste dělali podobnou chybu, možná ne s uživateli, ale s nějakou jinou abstrakcí, kterých máte mnoho. Každá instance by měla být řádek v jedné tabulce.

Pokud nám popíšete, co se snažíte uložit do databáze, můžeme vám téměř jistě pomoci zjistit, jak by to mělo být mapován na tabulky.

Upravit
po přečtení vašich komentářů (které by měly být skutečně upraveny do samotné otázky), zde jsou mé myšlenky:

Pokud jsou všechna data strukturována stejným způsobem (jako trojice), můžete vše jednoduše uložit do jediné tabulky se třemi sloupci a poté přidat potřebné indexy pro efektivní vyhledávání.

Pokud jsou všechny predikáty známy předem, můžete vytvořit tabulku pro každý predikát, ale nejsem si jistý, jak moc by to dávalo smysl.

Nejčistší možností by pravděpodobně bylo mít 4 tabulky:
(id, subject) , (id, predicate) , (id, object) ,(subjectid, predicateid, objectid) .



  1. Jak najít vztah z databáze Snomed Postgres Sql

  2. Jak dokumentujete kód databáze, abyste viděli závislosti mezi databázovými objekty?

  3. Propojit Parse s externí databází?

  4. Jak odkazovat na složený primární klíč v SQL