[vpsFree.cz: community-list] OT - PHP, MSQL a sdílení dat

Jaroslav Týc jaroslavtyc at atlas.cz
Mon Jul 2 11:48:18 CEST 2018


Chápu, že umíš PHP a MySQL, takže učit se něco nového je zátěž navíc, 
ale jak jsem dočetl popis tvého problému, tak mi naskočila CouchDB 
<http://couchdb.apache.org/>, kterou používají třeba pro apku Wallet 
<https://play.google.com/store/apps/details?id=com.droid4you.application.wallet>.

CouchDB má mu vlastnost, že si synchronizaci dat řeší sama, včetně toho 
který záznam je poslední, co s konflikty (ne, není to tak magické jak to 
zní) a nějaké výpadky spojení ji moc netrápí.

Co si pamatuju z přednášky vývojáře Wallet, tak si data posbírají přes 
CouchDB a pak to z ní vycucnou a hodí do SQL databáze, se kterou pak 
pracují jak jsou zvyklí.

Pokud by mě osobně tlačil čas, tak bych šel cestou nejmenšího odporu a z 
centrálního serveru bych kontroloval změny každých pět minut (třeba). 
Nedržel bych se replikace, protože udržovat *všude* stejnou databázi je 
zbytečná datová zátěž a kdyby mi někde vznikl konflikt (byt jenom se 
stejným ID u autoincrementu), tak bych si toho asi hodil mašli.

Jarda


On 07/02/2018 11:26 AM, Jan B. Kolář wrote:
> Ahoj,
>
> chtěl jsem Vás poprosit o radu s jedním problémem, který teď řeším.
>
> Když byl loni blázinec kolem EET, rozhodl jsem se jít vlastní cestou a pro
> svoje prodejny nasadil pokladní software v PHP (v PHP umím programovat, takže
> jsem si byl schopen do programu udělat implementaci EET). Celá věc mi běží na
> serveru a pokladny se tam připojují pomocí SSH tunelu.
>
> Co mi však  začalo dělat starosti jsou výpadky připojení. Za celý rok jich
> bylo jen pár, přesto bych však nechtěl dostat pokutu za to, že v době výpadku
> nedávám lístky.
>
> Začal jsem si tedy pohrávat s myšlenkou, že bych aplikaci přesunul na každou
> pokladnu zvlášť (tzn. na pokladně by běžel nginx, PHP a mysql) a na server si
> dělal jen replikaci databází, abych pak mohl dělat z pokladen výkazy, aniž by
> byly v běhu.
>
> Až po sem myšlenka dobrá, jenže dnes mi došlo, že budu potřebovat některá data
> sdílet mezi pokladnami - například seznam produktů. Ten potřebuji mít
> přístupný lokálně, aby šlo produkty účtovat v případě výpadku, ale zároveň ho
> také potřebuji synchronizovat, aby se produkt do seznamu nemusel přidávat na
> každé pokladně zvlášť. No a tady nevím, jak k tomu mám přistoupit :-(
>
> Neřešil jste někdo podobný problém? Napadlo mě, zda nemít pro sdílená data
> druhou databázi, která by byla na serveru a replikovala se na pokladny.
> Přiznám se ale, že nevím, jak bych v tomto případě řešil zápisy do master
> databáze na serveru a čtení z lokální slave databáze na pokladně.
>
> Ocením jakoukoliv radu nebo odkaz.
>
> Všechny zdraví
>
> Honza
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.vpsfree.cz/pipermail/community-list/attachments/20180702/dd7cdfce/attachment.html>


More information about the Community-list mailing list