Programátor PHP – Praha – dlouhodobá spolupráce
Zobrazují se odpovědi 1 až 3 z 3

CakePHP, relace v databázích

  1. Dobrý večer,

    tak nějak se snažím naučit CakePHP a teď jsem došel k problému, kdy bych rád využil relační možnosti v CakePHP.

    Mám 3 tabulky, jejich struktura viz obrázek:


    Vazby:
    1 artist může mít více songs
    1 song má pouze jednoho artist
    1 song může mít více files
    1 file má pouze jeden song

    Snažil jsem se využít automatiky, kterou CakePHP nabízí, tedy:

    PHP kód:
    <?php

      
    class ArtistsController extends AppController {
      
        public 
    $name      'Artists';
        public 
    $hasMany   'Song';
        
        
    //// INDEX
        
    public function index() {
        
          
    $this->set'artist'$this->Artist->find'first' ) );
        
        }
        
      }

    ?>
    Zatím v CakePHP poněkud tápu, takže budu rád za jakékoliv nakopnutí. U SongsController to bude vlastně fungovat stejně, jen místo $hasMany bude pravděpodobně $belongsTo, příp. $hasOne.

    Předem moc děkuju za rady.

    ---------- Příspěvek doplněn 16.01.2012 v 20:14 ----------

    EDIT: Jsem idiot, cpal jsem to do Controlleru, ne do Modelu. Ach jo. Pardon. Nicméně pro jistotu to tu nechám, kdyby se mi nedařilo dále.

  2. Happy Robot :]

    Co se právě děje na Webtrhu?

  3. Sice už jste to vyřešil, ale ještě k zamyšlení:
    1 skladba může mít víc autorů - např. remix, cover
    1 soubor může obsahovat víc skladeb

  4. Děkuji za podněty :) Samozřejmě, v praxi je to tak, že jedna skladba má často více autorů v případě spolupráce, o tom vím, nicméně zde je to řešeno opravdu takto (data jsou dodávána třetí stranou), tedy jedna skladba má vždy pouze jednoho autora a 1 soubor patří vždy jedné konkrétní skladbě.

Podobná témata

  1. Odpovědí: 20
    Poslední příspěvek: 09.04.2009, 08:46
  2. jaké jsou cenové relace práce PHP programátorů?
    By Neregistrovaný in forum Podnikání
    Odpovědí: 6
    Poslední příspěvek: 07.04.2009, 11:04
Hostujeme u Server powered by TELE3