Sdílená databáze několika aplikacemi rubrika: Programování: Jiné

3 vaclav
položil/-a 29.3.2015

Ahoj,

mám skupinu (zatím 3) aplikací. Všechny používají jednu databázi, stejné tabulky. Každá aplikace s datami dělá něco jiného. Jak řešit verzování databáze (strukturu, spouštěče, změny struktury) - mít zvláštní repositář a na ten pouze odkazovat? Nebo udělat návrh aplikace jinak?

Tápu, když budete vědět o adekvátní literatuře / článku, prosím o nasdílení :)

Díky

odkaz Vyřešeno
9 Honza Břešťan
odpověděl/-a 30.3.2015

Pokud je business logika v databazi, pristup by mel jit schovat za views a do stored procedures. Aplikace pak nebudou nikdy sahat na samotnou strukturu dat, takze tam je asi dostatecny prostor pro zmeny.

Jestli ma byt business logika jinde, tak bych se zamyslel nad zpusobem, jakym by se zmeny nasazovaly - to je podle me rozhodujici vzhledem k druhu tech aplikaci.

Muze stacit jim poskytnout API ve forme nejake knihovny, ale pak je s kazdou zmenou potreba knihovnu aktualizovat a znovu aplikaci nasadit. Je to extra prace pro jejich vyvojare, i kdyz se jich to vlastne netyka. Navic pokud maji ty aplikace hodne odlisne tempo vyvoje a nasazovani, muze to byt v podstate nemozne synchronizovat (na druhou stranu pokud by se DB menila vyrazne rychleji nez aplikace, ktera ji vyuziva, je asi neco divne).

Alternativne jde DB schovat za vlastni separatni sluzbu, ktera zverejni nejake vcelku stabilni API (a logika bude v ni). Je to extra indirekce a dalsi prvek, ktery je potreba nasazovat, zajistit redundanci, replikaci pripadneho stavu apod., ale dava to nejvic prostoru pro zmeny na vsech urovnich.

Podle potreby tech aplikaci se daji tyhle postupy kombinovat - jakykoliv interface by stejne mel byt co nejuzsi, aby nevznikaly zbytecne zavislosti. Takze i treba ta separatni sluzba by pak asi obsahovala tri nezavisle API podle toho, co ktera z aplikaci potrebuje zpristupnit.

Komentáře

  • rmaslo : Tři nezávislé API se mi moc nezdaji - určitě by tam potom byly nějaké duplicity. Jinak souhlas. 30.3.2015
  • Honza Břešťan : Duplicity na urovni implementace nejsou problem, ta muze byt v ramci te jedne sluzby spolecna. Jestli mit duplicity na urovni API pak asi zalezi na jejich mire a jak zapadaji do domeny problemu. Bez duplicit vypada vsechno hezci, ale slouceni zase vytvori spolecnou zavislost tech aplikaci - muze a nemusi to byt problem; zase podle rychlosti zmen, jestli ten prekryv je spis nahodny/docasny, nebo dava smysl z hlediska domeny apod. 30.3.2015

Pro zobrazení všech 4 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.