Hlavní navigace

Názor k článku Na co si dát pozor při návrhu databáze? od SB - „Faktura jsou mrtvá data. Adresa v ní musí...

  • Článek je starý, nové názory již nelze přidávat.
  • 22. 11. 2016 9:42

    SB (neregistrovaný)

    „Faktura jsou mrtvá data. Adresa v ní musí být uložena, stejně jako ceny atd.“
    Chyba - 1. přijdete o identitu adresy, 2. to bude velké. Buďto víte, kdy byla faktura vystavena a adresa je ta platná k tomuto okažiku daného subjektu, nebo ji můžete ze subjektu explicitně označit a zachováte její identitu (a ještě je to menší). Kopírovat není nic třeba.

    „ I když mám popisek položky vykopírovaný do faktury...“
    Ta samá chyba. Položka má identitu a je dán její název buďto napořád (objekt je modelován jako immutable), nebo v času (mutable). Vykopírovávat není nic třeba.

    „To je něco, co v dokumentové databázi nefunguje levně. Vyhledáváte podle atributu.“
    V dokumentové DB si buďto držíte seznam všech položek, ve kterých hledáte (obdoba RDB, nevhodné), nebo v případě, že potřebujete často zjišťovat faktury s položkou, si pro položku držíte seznam faktur (v RDB nejde). Pak nehledáte nic!

    Záměna termínů vztahy - relace.
    Naopak, čím více vztahů máte, tím hůře se modelují v RDB (zde jsou nutné při JOINech prohledávané vazební tabulky) a je vhodnější je ukládat do DB, která umí seznamy (odstraňuje vyhledávání).

    Už zase něco vykopírováváte? Jak potom u faktur zjišťujete shodu adres, když jste přišel o identitu? Porovnáním hodnot???
    Číselník je koncept z RDB pojmenovaný dle vnitřního označení relace řešeného obvykle číslem (přestože to často bez problémů může být řetězec), v objektovém modelu nic takového není, ten používá seznam s položkami s identitou. Je vidět ten rozdíl?