jak sensownie zaprojektować bazę danych pod system tagów co jest np. na wypoku? coś na zasadzie, że idowi posta podporządkowane jest kilka idów tagów, tylko, że musiałby by być w osobnych kolumnach żeby był potem jakiś sens przeszukiwać pod tym kątem. no ale jakoś dorabianie nowych kolumn mi się nie widzi. najprościej by było założyć sztywną liczbę np. max 10 tagów na post, ale to też nie jest rozwiązanie, poza tym jakoś tak kolumny w stylu tag1 tag2 tag3 brzydko wygląda. taka 3 wymiarowa tablica, tyle, że nie na oraclu, tj bez arrayów w wierszach, i bez jakiegoś łączenia idów w stringi i potem expolodawania ich w php bo zależy mi jednak na wyszukiwaniu.
@knysha: no właśnie nie chcę takich połączeń stringowych bo potem nie będzie jak tego przeszukać, trzeba by było pobierać wszystkie posty, eksplodować te przecinki do jakiegoś arraya i sprawdzać dopiero czy tam nie będzie ida. bez sensu.
@entrop: W PG są tablice i hstore to daje większe pole do popisu ale to w sumie już nie jest znormalizowana baza wtedy więc 3 tabela to standardowe podejście i jeśli chcesz mały projekcik to to jest najlepszy wybór. Możesz też trzymać w jednej tabeli tagi z fk do postu (tag w linijce) co jest w niektórych wypadkach szybsze ale w innych wolniejsze. Jak nie masz dużego projektu to bierz
@entrop: ja zadaję sobie to samo pytanie i chyba zrobię 3 tabelę, ale w tabeli z postami dam pole varchar(255) w ascigeneralci z tagami zapisanymi po przecinku. W ten sposób zagwarantuję sobie świetną wydajność przy przeglądaniu postów (żadnych dodatkowych zapytań) oraz typową możliwość wyszukiwana (która to będzie wymagała joina).
@m4kb0l: normalnie byłaby tabela z postami, tagami i miedzy tym jakaś łącząca te dane (idposta, idtagu). Indexy + memcache i będzie śmigać. Ale na Wykopie nie szukamy po bazie więc nie mamy tego problemu ;-)
Przeszedłem sobie polskie Beskidy. 533 kilometry wyszły w 17 dni ( ͡°͜ʖ͡°)
Spakowany w plecak 32 litry, 10 kilogramów na plecach z pełnym prowiantem i własnym śpiworem. Przyjemnie się tuptało tylko większość czasu był upał 35 stopni co po prostu wykańczało
jak sensownie zaprojektować bazę danych pod system tagów co jest np. na wypoku? coś na zasadzie, że idowi posta podporządkowane jest kilka idów tagów, tylko, że musiałby by być w osobnych kolumnach żeby był potem jakiś sens przeszukiwać pod tym kątem. no ale jakoś dorabianie nowych kolumn mi się nie widzi. najprościej by było założyć sztywną liczbę np. max 10 tagów na post, ale to też nie jest rozwiązanie, poza tym jakoś tak kolumny w stylu tag1 tag2 tag3 brzydko wygląda. taka 3 wymiarowa tablica, tyle, że nie na oraclu, tj bez arrayów w wierszach, i bez jakiegoś łączenia idów w stringi i potem expolodawania ich w php bo zależy mi jednak na wyszukiwaniu.
any ideas?
Komentarz usunięty przez autora
- tabela z tagami
- tabela z postami
- tabela z ID postów i przypisanymi do nich tagami
Daj znać, jeśli wymyślisz coś lepszego.