Správný návrh entit u vazby s příznakem
- Tirus91
- Člen | 199
Ahoj všem,
už nějakou chvíli si tu lámu hlavu s mojí situací, kdy potřebuju
správně nadefinovat entity.
O co mi jde
Potřeboval bych mezi 2 entity (kurz a uživatel) přidat vazební tabulku,
která ale bude definovat, zda kurz absolvoval úšpěšně či naopak. Vazba
M:M mezi kurzem a uživatelem je jednoduchá, ale jak to udělat vč.
příznaku?
Definice v kurzu
/**
* @ORM\ManyToMany(targetEntity="ClientPersonEntity", cascade={"persist"}, inversedBy="courses")
* @ORM\JoinTable(name="course_persons",
* joinColumns={@ORM\JoinColumn(name="person_id", onDelete="cascade")},
* inverseJoinColumns={@ORM\JoinColumn(name="course_id")}
* )
* @var ArrayCollection|ClientPersonEntity[]
*/
Definice uživatele
/**
* @ORM\ManyToMany(targetEntity="CourseEntity", mappedBy="persons")
* @var ArrayCollection|CourseEntity[]
*/
Vážně na toto musím definovat entitnu, která bude reprezentovat pouze vazbu M:M → M:M?
- Šaman
- Člen | 2666
Tak zrovna tady bych to na samostatnou entitu viděl. Ne-li na jinou
strukturu (opravdu nikdy nebudeš evidovat kdy absolvoval, kdo zkoušel, možná
nějaké hodnocení, info o placení apod?)
Ale obecně mě vazba s příznakem zajímá. Nenapsal jsi jaký ORM
používáš, tohle vypadá na Doctrine?
- Tirus91
- Člen | 199
@Šaman
promiň, nějak mi to vypadlo. Ano, jedná se o Doctrine.
V tuto chvíli je požadavkem jen to, aby se evidovalo, kdo je na kurz přihlášený (zadává to tam klient sám) a následně eviduje pouze, zda kurz absolvoval úspěšně či naopak. Další, co by možná stálo za to, aby se k tomu stavu rovnou evidoval nějaký dokument (přesněji certifikát).
Kdy a kde absolvoval daný uživatel kurz, je dáno v definici samotné entity kurzu, jelikož kurz sám o sobě nese tyto údaje. Nejedná se o neustále jeden kurz, který se následně opakuje.
- Oli
- Člen | 1215
Myslím že jo. Já jsem to udělal v podstatě stejně jako je třeba tady http://stackoverflow.com/…-extra-field#…