Ty problemy s datovym modelem nejsou jenom domenou online realitek, ale mnoha dalsich webovych aplikaci. Priciny tohoto stavu jsou dve (uzce souvisejici):
1. prirustkova metoda vyvoje
2. datovy model tvori webdesigner
Aplikace zacne jako par statickych stranek, pak se zjisti ze musi nekde ukladat data, tak si je zacne mily webdesigner zapisovat nekam na disk, brzo mu dojde ze je to ponekud nesikovne, nainstaluje MySQL, precte HOWTO a nahrne flat files dovnitr (pripadne dneska dela flat files v databazi rovnou). Aplikace se dale rozrusta, zacina byt pomerne slozita a webdesigner placa dalsi a dalsi tabulky nesmyslne na stavajici haldu.
Vysledkem je, ze se objevi vsechny notoricky zname problemy dane neexistenci skutecneho datoveho modelu (duplicity, chybna ci nesmyslna data, nulova moznost managementu).
Kdyby s tim prisli za mnou, tak bych jim udelal datovy model, ktery bude bez problemu rozsiritelny a bude rust s aplikaci, nebot bude vychazet ze skutecneho modelu jejich businessu. Jenze to v pocatku nikoho ani nenapadne, takze se mi pak obcas stane, ze za mnou nekdo prijde s tim, ze maji "par problemu v databazi" a jestli bych jim s tim nepomohl. Pak se strasne divi, kdyz jim reknu, ze v prvni rade nemaji vubec zadny datovy model, takze neni co opravovat a musi se to udelat na zelene louce, coz je skvely zazitek pokud je aplikace uz dva roky v produkci. Nasleduje strasne prekvapeni, vzdyt webdesignova firma tvrdila, ze jejich vyvojar zna MySQL. :-)
Klasickym pripadem jak pristupuji k datovemu modelovani nekteri vyvojari byl pred par lety dotaz v jedne konferenci zdali MySQL zvladne 30.000 tabulek (tabulka v MySQL = soubor ve filesystemu). Postupne z nej vypadlo, ze uz leta pise jakousi aplikaci pro firmu vlastnici internetove kavarny. Datovy model spocival v tom, ze pro kazdy pocitac se zalozila kazdy den nova tabulka kde byly ulozeny pristupy klientu pro ten dany den. Ze zacatku to docela slapalo, ale postupne misto jedne kavarny jich bylo deset, firma zacala poskytovat predplatne, byla potreba rocni historie a podobne. Vysledek byl ten, ze dotycny mel 100 pocitacu x 365 dni v roce = 36500 databazovych tabulek rocne. Sice mu na jeho otazku nikdo neodpovedel, ale legrace bylo i tak dost. Nakonec dospel k nazoru, ze to od zakladu predela. Skoda, pokud by jeho firma zacala rust do zahranici ci dokonce fuzovat mohl mit behem par let co se tyce poctu objektu nejvetsi databazi na svete. :-)