vazba pres nazvy primarnich a cizich klicu id<->tabulka_id

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
zac24
Člen | 41
+
0
-

pokud chci pohodlne joinovat v nette database, bylo mi receno ze musi primarni klic nest jmeno id a cizi klic jine tabulky jmeno prvni tabulky plus retezec _id
mozna vam tento pozadavek pripada normalni, ale prosimvas pekne nelze ho nejak efektivne obejit ? Totiz je docela nesmysl mit tabulku uzivatele pak tabulku knihy a v nich sloupec autor_id a korektor_id oba vazane na tabulku uzivatele prejmenovat na uzivatele_id coz jak jiste uznate ani nedava zadny smysl.
V ramci tabulky knihy mam definovany cizi klice takze je zjevne ze jde o vazbu na uzivatele, proc tuto informaci nette neprebira odsud a trva na pouziti nazvu uzivatele_id ? Tohle mi pripada opravdu nevyzrale, nebo neco chapu a delam naprosto spatne?

Unlink
Člen | 298
+
+1
-

nette/database štandardne pracuje na základe väzieb, ktoré sú v databáze realizované pomocou cudzích kľúčov (pokiaľ používaš discoverd conventions).
Dané obmedzenia ktoré popisuješ sú tuším pri použití static conventions.

Ak použiješ nette database table tak tvoj požiadavok, daj knihy kde korektor je ten a autor ten by vyzeral nejako tako:

$context->table('books')->where(['autor.name' => 'Meno Autora', 'korektor.name' => 'Meno Korektroa']);

Viac info v dokumentácii: https://doc.nette.org/…ase/explorer