PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

utworzyć milion tabeli w bazie danych?

Jeśli potrzebujesz miliona tabel w swojej bazie danych, robisz to źle.

Tabele mają na celu reprezentowanie strukturalnie i koncepcyjnie różnych danych. I nie wierzę, że w swojej aplikacji wykorzystujesz milion różnych koncepcji.

Czasami początkujący uważają, że powinni na przykład utworzyć tabelę dla użytkownika. Ale „użytkownik” to jedno pojęcie i przechowujesz te same informacje dla każdego użytkownika (na przykład imię i nazwisko, adres e-mail, nazwa użytkownika, hasło), więc powinien to być jeden tabeli, gdzie każdy użytkownik jest tylko osobnym wierszem.

Wygląda na to, że popełniasz podobny błąd, może nie z użytkownikami, ale z jakąś inną abstrakcją, której masz wiele przykładów. Każda instancja powinna być wierszem w jednej tabeli.

Jeśli opiszesz nam, co próbujesz przechowywać w bazie danych, prawie na pewno pomożemy Ci dowiedzieć się, jak powinno być mapowane na tabele.

Edytuj
po przeczytaniu twoich komentarzy (które naprawdę powinny zostać zredagowane do samego pytania), oto moje przemyślenia:

Jeśli wszystkie dane mają taką samą strukturę (jako trójki), możesz po prostu przechowywać wszystko w jednej tabeli z trzema kolumnami, a następnie dodać niezbędne indeksy w celu wydajnego wyszukiwania.

Jeśli wszystkie predykaty są znane z góry, możesz stwórz tabelę według predykatu, ale nie jestem nawet pewien, ile to miałoby sensu.

Najczystszą opcją byłoby prawdopodobnie posiadanie 4 tabel:
(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. Porządkowanie wyników gorliwie ładowanych modeli zagnieżdżonych w Node Sequelize

  2. Heroku i Rails:Gem Load Error w Postgresie, jednak jest określony w GEMFILE

  3. Wdrażanie i konfiguracja PostgreSQL za pomocą Puppet

  4. Zmień kodowanie bazy danych PostgreSql

  5. Jak uzyskać sumowanie z liczbą większą niż określona kwota