Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [sql] optymalny schemat tabeli do przechowywania tagów
szczypior
post
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 5.02.2007

Ostrzeżenie: (0%)
-----


Witam

Jak najefektywniej przechowywać tagi (z tzw. chmurki tagów), tak żeby można było je powiazac z postami z innej tabeli, ale i ograniczyć zajmowane przez nie miejsce?
Zbudować tabele
  1. id | tag | id_post | suma
i dodawać je kolejno nawet gdy będą sie powtarzać zwiększając tylko wartość w kolumnie "suma" ?

Jest jakiś lepszy patent?
Go to the top of the page
+Quote Post
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Ja bym to zrobił w ten sposób:
tag = id, nazwa
post = id, tytul, tresc...
tagi_postu = post_id, tag_id
W tabeli tagi_postu oba pola bylyby kluczem głównym będącym równocześnie kluczami obcymi do tabel tag oraz post.
Go to the top of the page
+Quote Post
szczypior
post
Post #3





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 5.02.2007

Ostrzeżenie: (0%)
-----


ale jak bedzie trzeba pobrać tagi dla postu x to będę musiał zrobić mega joina, aby najpierw pobrać id tagów a potem ich treść z kolejnej tabeli. To rozwiązanie będzie chyba bardziej "męczące" dla bazy?
Go to the top of the page
+Quote Post
phpion
post
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Mega join?
  1. SELECT tag.nazwa FROM tagi_postu LEFT JOIN tag ON tagi_postu.tag_id=tag.id WHERE tagi_postu.post_id=1234

Jeśli postawisz indexy na odpowiednich kolumnach (na obu kolumnach w tagi_postu) to będzie ok.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:05