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

Komentarze na temat wielu problemów z projektowaniem baz danych w tabelach

Możesz utworzyć kolejną tabelę CommentableEntity (choć nazwij to czymś lepszym). Każdy z wierszy w Twoich tabelach (Articles , Recipes itp.) miałoby odniesienie do unikalnego wiersza w tej tabeli. Tabela encji może mieć type pole do wskazania typu jednostki (aby wspomóc łączenie odwrotne).

Następnie możesz mieć Comment tabela odwołująca się do CommentableEntity , w sposób ogólny.

Na przykład otrzymasz następujące tabele:

Articles
-----------------
Article_id
CommentableEntity_id (fk, unique)
Content
....

Recipes
-----------------
Recipe_id
CommentableEntity_id (fk, unique)
Content
....

CommentableEntity
-----------------
CommentableEntity_id (pk)
EntityType (e.g. 'Recipe', 'Article')

Comment
-------
Comment_id (pk)
CommentableEntity_id (fk)
User_id (fk)
DateAdded
Comment 
...etc...

Możesz dodać rekord CommentableEntity za każdym razem, gdy dodajesz artykuł/przepis itp. Wszystko, co musi znać twój kod obsługi komentarzy, to CommentableEntity_id — nie ma znaczenia, jaki to rodzaj.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd połączenia MySQL w Javie — com.mysql.jdbc.Driver

  2. Jak zainstalować MySQL z phpMyAdmin na Ubuntu 14.04?

  3. Jak zrobić średnią ruchomą dla zakresu dat w SQL?

  4. Określony klucz MySQL był za długi

  5. Dlaczego tabela SELECT * FROM INNER JOIN..ON pokazuje przecinającą się kolumnę dwukrotnie?