sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

Er det muligt at rette en fremmednøgle i Yii uden at have sat den op i databasen?

Hvis jeg ikke tager fejl, behøves du ikke at få mySql til at håndhæve udenlandske nøglerelationer, så de stadig kan arbejde i Yii. Opsætning af FK-begrænsninger i mySql sikrer korrekt databaseintegritet, men jeg tror ikke, Yii rent faktisk bruger det under kørsel.

Når jeg oprindeligt kører yiic (af Gii) for at bygge projektet, tror jeg, at det ser på DB'en for at bygge de rigtige relationer i modellen, men det bruger dem ikke efter det.

Yii bruger så denne viden (fra yiic) om tabelrelationerne til at gøre dit liv lettere ved at give genvejsmetoder til at få adgang til relationelle data, og for at sikre at du ikke overtræder mySql-begrænsninger og får grimme SQL-fejl osv. Men du kan stadig bruge Yii relationslogik uden de underliggende SQL-begrænsninger. Det eneste problem vil være, at hvis Yii roder og tildeler en ikke-eksisterende FK eller noget, vil din database ikke fange denne fejl (din dataintegritet vil være mere udsat for fejl).

For at linke dine produkter til afdelinger skal du bare sørge for at have et afdelings-id felt i produktet (hvilket det lyder som om du har). Tilføj derefter en relationsregel som sådan til Produkt:

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

Og i din afdelingsmodel:

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

Nu skulle du være i stand til at bruge relationen som normalt:

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

Held og lykke, og lad mig vide, hvis jeg er langt væk, og det ikke virker for dig!




  1. CSV utf8 import med phpmyadmin

  2. Sådan automatiseres databasesikkerhedskopiering ved hjælp af phpmyadmin

  3. SSIS script opgave mislykkedes version 15.0 script?

  4. SQL-forespørgsel til at sætte præfiks foran eksisterende værdi i et felt