![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 1 Dołączył: 6.12.2014 Ostrzeżenie: (0%) ![]() ![]() |
Cześć ponownie!
Tworzę proste forum, mam tabele posty(id, ...) tagi(id, ...) przypisanie_tagi(id, id_postu, id_tagu) Użytkownik wpisuje tagi rozdzielone spacją i przypisywane są one do postu (jeżeli tag nie istnieje to dodawany jest to tabeli tagi i przypisywany). Jak to najlepiej zrealizować? Chodzi zarówno o wydajność jak i uniknięcie sytuacji, że jakieś dane zostaną "zgubione" (transakcje w Yii są możliwe dla wielu modeli?). Nie oczekuje oczywiście gotowego kodu, a raczej wskazówki/linki/pseudokod. Dzięki! |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
W tagi dajesz klucz Unique - problem duplikatów masz z głowy
Dodajesz tak, sprawdzasz ID dla grupy tagów przypisujesz IDki do postu i tyle. Nie ma tu się nad czym za bardzo rozwodzić ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 1 Dołączył: 6.12.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź. Ok, ale w momencie dodawania Yii zwróci wyjątek (jeżeli będzie duplikat) i nie wykona się reszta. Więc trzeba by to jakoś inaczej rozwiązać, w bardziej rozbudowany sposób. Również kwestia zachowania spójnych danych, o których pisałem w pierwszym poście.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Zawsze zanim wrzucisz do bazy możesz sprawdzić czy nie istnieje już rekord z tym id_postu i id_tagu.
Poza tym istnieje INSERT IGNORE |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 13:40 |