Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
Využij akce až 80 % zdarma při nákupu e-learningu - více informací. Zároveň pouze tento týden sleva až 80 % na e-learning týkající se Swift
Avatar
Erik Šťastný:18.9.2020 10:21

Zdravíčko,

máme PHP aplikaci, která pracuje s databází, která má určitou strukturu.
Jaký je standardní postup jak zajistit kompatibilitu aplikace a struktury databáze?

Napadají mě v zásadě 3 možnosti.

  • Aplikace kontroluje zda má potřebnou tabulku, atp. a pokud ne vyhodí nějaký speciální error typu aplikace nemůže fungovat, databáze není kompatibilní s aplikací.
  • Aplikace kontroluje zda má potřebnou tabulku a pokud ne tak si ji zvládne vytvořit podle nějaké default šablony.
  • Aplikace nekontroluje nic a prostě pouští SQL dotazy, když failnou, tak failnou a vyhodí vyjímku.

Je něco z toho nějak standardní nebo je to těžce individuální?
Osobně uvažuju o druhé možnosti, líbí se mi možnost vzít web hodit na jiný hosting spustit a vše bude fungovat jen se budou data tvořit od nuly.

Editováno 18.9.2020 10:21
 
Odpovědět
18.9.2020 10:21
Avatar
Tomáš Maňhal:18.9.2020 10:42

Nejběžněji se setkávám s tím druhým případem. Aplikace se už při instalaci pídí, jestli databáze existuje. Pokud ne, vyžádá si její vytvoření nebo napojení. Pak pouští sérii dotazů jestli jsou tam potřebné tabulky a pokud nejsou vytvoří si je podle vytvořených pravidel a potřeb. Mě to tak přijde i logický. Aby aplikace neotravovala tebe, nebo i BUFU uživatele, že jí něco chybí. Kdyby nebyla schopná po napojení k databázi pracovat s tvorbou tabulek a relací, byla by v podstatě ta databázová spolupráce k ničemu. A ty chceš tu výhodu databáze používat naplno aniž bys někoho venku v rozhraní otravoval.

 
Nahoru Odpovědět
18.9.2020 10:42
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Tomáš Maňhal
Erik Šťastný:18.9.2020 10:50

No a jak to například řešit přímo pro PHP na běžném hostingu? Když pouštím Node.JS nebo ASP.NET aplikaci, tak mohu tento check udělat při startupu, ale u PHP žádný "startup" nemám a prakticky jen kopíruji php skripty.

Je třeba vhodné na to vytvořit a udělat nějaký skript udržovaný bokem, který všechny tyto checky provede? Hádám že není žádoucí aby se zbytečně v každém skriptu při jeho vykonávání provolávali tyhle checky při každém requestu.

 
Nahoru Odpovědět
18.9.2020 10:50
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:18.9.2020 15:21

Normalni aplikace se sama neinstaluje. Neni tam tabulka, vypise error.
Instalacni cast app si po vyzadani na instalaci sama vsechny problemy osetri, podle toho, co ma zadane. Kdyz ma zadane prepsat, tak tabulky prepise. Kdyz ma zadana vyhlas error, upozorni, ze tabulky exstuji a mohl bys prepsat data, tak vypis error. Kdyz ma zadane pridej ke stavajicim datum... Jakoze treba nekdo dela export/csv shopu a upload na web do sql, seznam zbozi s novymi cenami. Tam bud chces, aby ti vsechno prepsal nebo pridal jen ty nove. Ale vetsinou nejlepe vse prepsat. Ale melo by ti to zastavit app, aby nemohl uzivatel nakupovat.

 
Nahoru Odpovědět
18.9.2020 15:21
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.