Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jeden stół a wiele stołów

Mogą istnieć prawdziwe powody, dla których chcesz/potrzebujesz jednej tabeli komentarzy. Na przykład ułatwiłoby to przeglądanie wszystkich komentarzy danego użytkownika. Również przeszukiwanie wszystkich komentarzy byłoby prostsze (umieść jeden indeks FTS na jednej tabeli i gotowe).

Z drugiej strony, jeśli nie ma przekonującego powodu, aby trzymać komentarze w jednej tabeli, możliwe jest trzecie (i raczej oczywiste) rozwiązanie.

Utwórz osobną tabelę komentarzy dla każdego elementu (post, wydarzenie, plik, dokument). W takiej sytuacji relacje RI byłyby bardzo proste do zdefiniowania i opisania. Ponadto, jeśli bardzo często wpisujesz zapytania ad hoc, może to uprościć. Na przykład

 select * from documents d left join doc_comments c 
                           on d.id = c.docid 
                           where d.id=42;

Nic z tego nie może być istotne ani ważne w Twojej sytuacji, ale warto to rozważyć.

Jedna dodatkowa losowa myśl:oba rozwiązania w PO mają „poczucie”, że definiują relację wiele-do-wielu (np. komentarz może należeć do wielu elementów). Zakładając, że nie jest to pożądana sytuacja, można temu zapobiec za pomocą odpowiedniego unikalnego indeksu, ... ale nadal ... ma ten początkowy wygląd, który wydaje się, że może prowadzić do możliwych zamieszania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. C# dane bazy danych dostępu do aplikacji Windows nie są zachowywane po zamknięciu

  2. Jak używać operatora IN z JDBI?

  3. Odpowiednik PDO mysql_client_encoding()?

  4. Struktura MySQL do tłumaczeń

  5. Jak mogę wyświetlić czas zapytania w Perl, DBI?