Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHALCON] Usuwanie relacyjne
aras785
post
Post #1





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


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 (IMG:style_emoticons/default/biggrin.gif)

  1. class Czlowiek extends \Phalcon\Mvc\Model
  2. {
  3. public function initialize() {
  4. $this->belongsTo('id', 'Cechy', 'idc');
  5. }
  6. }


Ten post edytował aras785 1.07.2014, 11:26:48
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




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.
Go to the top of the page
+Quote Post
aras785
post
Post #3





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


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 (IMG:style_emoticons/default/smile.gif)

Ten post edytował aras785 3.07.2014, 14:31:23
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




No to zdecydowanie najwyższa pora przejść na InnoDB, albo na Postgresa (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post
aras785
post
Post #5





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


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
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: 23.08.2025 - 23:35