
Konceptuální model databáze - propojení entity s atributem jiné entity
Zdravím!
Sice se to netýká přímo programování, ale zařadil jsem to sem. Mám asi triviální dotaz, ale nevím si rady. Pracuji v programu Oracle SQL Developer Data Modeler. V konceptuálním modelu mám entity Firma a Faktura (ta má atributy mimojiné Dodavatel a Odběratel). Chci, aby atributy Dodavatel a Odběratel byly jakýmsi způsobem propojeny, tzn. atributy aby Dodavatel i Odběratel byly shodny s entitou Firma. Jde to nějak zařídit, např. pomocí strukturálního datové typu. Zatím jediný vztah je 1:N mezi entitami Firmou a Fakrturou. Nebo se to nějak naprogramuje až jazykem PL/SQL?
Díky za odpověď.
Tak tam ty vazby dej dvě. Ale nechtěl bys to mít tak, že by tam byla vazba jenom na jednu firmu a příchozí/odchozí fakturu bys rozlišoval nějakým příznakem?
V zadání úkolu máme mít pouze jednu entitu. Takže jde nastavit dvě vazby 1:N? Tím by vlastně měla 1 entita 2 FK a tím to bylo propojeno. Ale jedná se mi konkrétně i o to, aby byly propojeny ty konkrétní atributy. V Datamodeleru jsem 3 roky nepracoval a mám zažité pouze vztahy 1:1, 1:N a N:M, který se vlastně musí ještě upravit vnořením umělé entity.
Teď nějak nechápu, na co se vlastně ptáš.
Na ty vztahy. Kdybych propojil entity Firma a Faktura dvěma vztahy 1:N, pak v převodu na relační model budu mít v entitě Faktura 2 cizí klíče - IČO jedné a duhé firmy. Jak ale zajistím propojení jednoho IČO s odběratelem a druhého s dodavatelem?
Asi jsem natvrdlý, ale jaké propojení myslíš? A používat IČO jako klíč není zase tak dobrý nápad, lepší je použít umělý klíč bez významu.
No dobře, budu mít dejme tomu umělý klíč. Jde mi o to, aby Odběratel byla 1. firma a Dodavatel 2. firma. Když propojím Fakturu a Firmu, ano, je jasné, ke kterým firmám faktura patří, ale jak zařídit, aby bylo rozpoznáno, že jedna firma je odběratelem a druhá dodavatelem. Možná jsem natvrdlý já, ale pouze vytvořením vztahů mezi entitami tohoto logicky nedocílím, ne?
Tak snad budeš mít v tabulce Faktura sloupec Odběratel a sloupec Dodavatel, ne?
Ano, to mám. Atribut = sloupec. No, asi se prostě nechápem :D Ten primární klíč musím přiřadit přímo k atributu.
Primární klíč máš v tabulce Firma. V tabulce Faktura máš 2 cizí klíče odkazující na tabulku Firma.