PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

създаване на милиони таблици в база данни?

Ако имате нужда от милион таблици във вашата база данни, вие го правите погрешно.

Таблиците са предназначени да представят структурно и концептуално различни данни. И отказвам да повярвам, че работите с милион различни концепции в приложението си.

Понякога начинаещите смятат, че трябва да създадат таблица за потребител, например. Но „потребител“ е едно понятие и вие съхранявате една и съща информация за всеки потребител (име, имейл, потребителско име, парола, например), така че трябва да е едно таблица, където всеки потребител е само отделен ред.

Изглежда, че правите подобна грешка, може би не с потребителите, а с някаква друга абстракция, за която имате много случаи. Всеки екземпляр трябва да бъде ред в една таблица.

Ако ни опишете какво се опитвате да съхраните в база данни, почти сигурно можем да ви помогнем да разберете как трябва да бъдат картографирани към таблици.

Редактиране
след като прочетох вашите коментари (които наистина трябва да бъдат редактирани в самия въпрос), ето моите мисли:

Ако всички данни са структурирани по същия начин (като тройки), можете просто да съхранявате всичко в една таблица с три колони и след това да добавите необходимите индекси за ефективни търсения.

Ако всички предикати са известни предварително, вие можете направете таблица за предикат, но не съм много сигурен колко смисъл би имало това дори.

Най-чистият вариант вероятно би бил да имате 4 таблици:
(id, subject) , (id, predicate) , (id, object) ,(subjectid, predicateid, objectid) .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Свързване на две таблици в сложна заявка (не еднообразни данни)

  2. [Laravel]:SQLSTATE[3F000]:Невалидно име на схема

  3. План за обяснение на SQL:какво е Materialize?

  4. Синтактична грешка при или близо до END с име на колона END

  5. Актуализирайте записи, които отговарят на условие с нарастващо число