phpMyAdmin
 sql >> Baza danych >  >> Database Tools >> phpMyAdmin

Czy można naprawić klucz obcy w Yii bez skonfigurowania go w bazie danych?

Jeśli się nie mylę, nie potrzebujesz aby mySql wymuszał relacje kluczy obcych, aby nadal działały w Yii. Ustawienie ograniczeń FK w mySql zapewnia odpowiednią integralność bazy danych, ale nie sądzę, aby Yii faktycznie używał tego w czasie wykonywania.

Kiedy początkowo uruchamiam yiic (z Gii) do budowania projektu, myślę, że patrzy on na DB, aby zbudować właściwe relacje w modelu, ale potem ich nie używa.

Yii następnie wykorzystuje tę wiedzę (z yiic) o relacjach między tabelami, aby ułatwić Ci życie, zapewniając skrótowe metody dostępu do danych relacyjnych i aby upewnić się, że nie naruszasz ograniczeń mySql i nie otrzymujesz brzydkich błędów SQL itp. Ale nadal możesz używać Logika relacji Yii bez podstawowych ograniczeń SQL. Jedynym problemem będzie to, że jeśli Yii zepsuje się i przypisze nieistniejące FK lub coś, Twoja baza danych nie wykryje tego błędu (integralność danych będzie bardziej podatna na błędy).

Aby połączyć swoje produkty z działami, po prostu upewnij się, że masz pole id_działu w produkcie (wygląda na to, że masz). Następnie dodaj taką regułę relacji do produktu:

'department' => array(self::BELONGS_TO, 'Department', 'department_id'),

A w modelu Twojego działu:

'products' => array(self::HAS_MANY, 'Product', 'department_id'),

Teraz powinieneś być w stanie używać tej relacji jak zwykle:

$myProductModel->department; // returns the model of the Department referenced
$myDepartmentModel->products; // returns the models of all Products in the department

Powodzenia i daj mi znać, jeśli jestem daleko od bazy i to ci nie działa!




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Jak uzyskać nazwę kolumny, której wartość nie jest null w mysql

  2. Wywołanie funkcji fetch_assoc() w przypadku błędu nieobiektowego?

  3. Jak dodać przy usuwaniu kaskadowym i przy aktualizacji ograniczać za pomocą phpmyadmina?

  4. Instalowanie phpmyadmina z home-brew

  5. Zapytanie Mysql działa w phpmyadmin, ale nie w php (ze względu na datę)