Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHALCON] Usuwanie relacyjne
Forum PHP.pl > Forum > PHP > Frameworki
aras785
Cześć.

Przykładowo mamy tabele: człowiek (id,imie) oraz cechy (id,idc,cecha) - idc - id człowieka.

I teraz jak zrobić aby przy usuwaniu człowieka usuwały się również wszystkie cechy należące do niego?

Próbowałem czegoś takiego i nie bardzo to działa:
  1. class Czlowiek extends \Phalcon\Mvc\Model
  2. {
  3. public function initialize() {
  4. $this->hasMany('id', 'cechy', 'idc');
  5. }
  6. }




Pozdrawiam


--- EDIT ----

Już znalazłem rozwiązanie biggrin.gif

  1. class Czlowiek extends \Phalcon\Mvc\Model
  2. {
  3. public function initialize() {
  4. $this->belongsTo('id', 'Cechy', 'idc');
  5. }
  6. }
phpion
Nie lepiej byłoby zrzucić usuwanie kaskadowe na bazę danych dzięki ON DELETE CASCADE? Wtedy masz pewność, że dane zostaną usunięte nieważne czy usuniesz rekord z poziomu PHP czy samej bazy danych.
aras785
Cytat(phpion @ 3.07.2014, 14:48:35 ) *
Nie lepiej byłoby zrzucić usuwanie kaskadowe na bazę danych dzięki ON DELETE CASCADE? Wtedy masz pewność, że dane zostaną usunięte nieważne czy usuniesz rekord z poziomu PHP czy samej bazy danych.


Wstyd przyznać ale wgl. o tym nie pomyślałem i nigdy z tego nie korzystałem. Obecnie siedzę na myisam i chyba czas przerzucić się na innodb smile.gif
phpion
No to zdecydowanie najwyższa pora przejść na InnoDB, albo na Postgresa smile.gif Naprawdę wiele rzeczy Ci się uprości dzięki usuwaniu kaskadowemu, a do tego będzie to działało dużo szybciej i zapewni integralność danych.
aras785
No wygląda to super i oczywiście kolejne projekty tylko i wyłącznie na tej bazie. Trochę w tym siedzę, a o takich rzeczach nawet nie wiedziałem... wstyd
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.