Portál AbcLinuxu, 7. května 2025 17:33

Dotaz: Modelování vztahu 1:2

29.8.2013 17:55 Tomáš | skóre: 31 | blog: Tomik
Modelování vztahu 1:2
Přečteno: 875×
Odpovědět | Admin
Ahoj, spadl na mě úkol vytvořit menší databázi a nevím si rady s jedním malých detailem.

Zákazník chce evidovat nějaký HW, který vypadá tak, že je velká bedna, která má 2 sloty, výjimečně jenom 1, do kterých se zasunují 2 součástky (nebo 1, pokud je slot jenom 1). Hardwarově to jsou stejné součástky, ale podle toho, ve kterém jsou slotu, se do nich nahrává jiný SW, proto se musí evidovat i poloha. Přitom se může stát, že součástka přechodně není zaevidovaná v žádné bedně (pro účely oprav, kalibrace apod.)

Je lepší to modelovat klasicky 1:N (v tabulce součástek je sloupec s odkazem na velkou bednu) a hlídat si, že na jedno místo nejsou zaevidované 2 součástky, nebo mít v tabulce s bednami 2 sloupce se sloty, která se odkazují na tabulku součástek? Je docela jisté, že ty sloty budou pořád 2 a i kdyby ne, tak vzhledem k malému vytížení databáze by nebyl problém přidat sloupce i za běhu.

Pak tu mám podobný problém 1:4, ale nejsou to součástky, ale dokumentace, ze které mě zajímají 2 řetězce a v některých případech ještě 2 navíc (celkem 4). Množina možných hodnot řetězců je docela malá, tak 20-30 kousků. Je mi jasné, že si udělám tabulku s těmi řetězci, ale nevím, jak to nejlíp propojit s těmi dokumenty. Jestli se odkazovat přímo z tabulky s dokumenty nebo udělat propojovací tabulku.

Můžete mi popsat standardní řešení, případně výhody/nevýhody?

Díky

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.8.2013 19:27 Kit
Rozbalit Rozbalit vše Re: Modelování vztahu 1:2
Odpovědět | | Sbalit | Link | Blokovat | Admin
Databázový architekt zná jen 3 čísla: 0, 1 a nekonečno.
29.8.2013 19:32 potato
Rozbalit Rozbalit vše Re: Modelování vztahu 1:2
To by mě zajímalo, jak by teda representoval komplexní čísla.
29.8.2013 20:57 Kit
Rozbalit Rozbalit vše Re: Modelování vztahu 1:2
Komplexní číslo je z pohledu DB jeden objekt.

Myslel jsi, že jeden slot by byl reálnou složkou a druhý imaginární? Poněkud nepraktické.
Řešení 1× (Tomáš (tazatel))
Josef Kufner avatar 31.8.2013 22:22 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Modelování vztahu 1:2
Odpovědět | | Sbalit | Link | Blokovat | Admin
V podstatě máš tři možnosti:
  1. Vazba 1:N, kdy součástka odkazuje na bednu a pamatuje si pozici.
    • Jednoduché řešení, jen musíš zajistit, že v jednom slotu nebudou dvě součástky (unikátní index bedna-slot nad tabulkou součástek).
  2. Vazba M:N, kdy máš propojovací tabulku.
    • Výhodou je minimální propojení části aplikace s bednama a součástkama. Je to nejpružnější řešení. Nevýhodou komplikovanější databáze.
  3. Dvakrát vazba N:1, kdy tabulka beden má dva sloupečky, každý reprezentuje jednu pozici a odkazuje do tabulky součástek.
    • Jednoduché řešení, které klade důraz na pozici, ale je třeba ohlídat vícenásobné použití součástky. Asi nejméně flexibilní řešení, ale spolu s některými frameworky to může být jednodušší než to první.
Než se rozhodneš, je potřeba si zodpovědět otázku: Která ze zúčastněných entit má kratší životnost?

Pokud databáze, tak na krásu kašli a vyber to nejméně pracné řešení. Pokud hardware, tak to udělej tak, aby nový kus hardwaru se třemi sloty neznamenal velký problém.
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.