Clicky

Skocz do zawartości


Zdjęcie
- - - - -

Zarządzanie relacjami many to many

2 odpowiedzi w tym temacie

  • Zaloguj się, aby dodać odpowiedź

#1 mokry

mokry

    Początkujący

  • Użytkownik
  • Pip
  • 45 postów
  • Skąd:śląsk, Chrzów

Napisano 13 styczeń 2013 - 00:28

Mam pytanie natury czysto techniczno-optymalizacyjnej.

Zakładjąc, że posłużymy się do pytania standardowymi tabelami: roles, roles_users i users.
Mamy na stronie formularz do edycji użytkownika i sekcję do przypisywania roli za pomocą checkbox'ów.

W chwili przekazania tablicy z id ról, które chcemy do użytkownika przypisać jak to rozwiązujecie od strony PHP?
Oczywiście wiem o metodach add() i remove().

Chodzi mi jednak o taką sytuację, gdy mamy w edycji użytkownika, któremy chcemy odjąć daną rolę a resztę pozostawić bez zmian. Czy wtedy usuwacie wszystkie relacje i na nowo dodajecie tylko te, które zostały zaznaczone, czy macie jakiś inny, lepszy sposób?

Pozdrawiam.


#2 mck

mck

    Jestę Blogerę

  • Admin
  • 1544 postów

Napisano 13 styczeń 2013 - 01:27

Albo usunięcie wszystkich i dodanie na nowo (koniecznie w jednej transakcji!), albo najpierw array_diff() na tablicach ze starymi i nowymi uprawnieniami i odpowiednio insert/delete w bazie.

#3 lukaskolista

lukaskolista

    Młodszy Mastah

  • Użytkownik
  • PipPip
  • 414 postów

Napisano 13 styczeń 2013 - 07:01

uzycie array_diff() nie wyklucza uzycia transakcji. W przypadku operacji na wiekszej ilosci rekordow zawsze nalezy stosowac transakcje (jezeli baza na to pozwala)




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych