Autor Zpráva
jannek
Profil
Hledám nějaké "best practise" pro následující situaci.

Mám MySQL DB (InnoDb) v ní mám nějaká data potřebná pro běh intranetové webaplikace. V této DB je také tabulka users, která uchovává data o uživatelech.

Nyní bych měl rozběhnout zcela novou aplikaci. Tu aplikaci jsem nepsal já, je to hotová aplikace, nelze do ní zasahovat (ani na to není čas), bude běžet v DB vedle stávající DB (vytvoří se nová InnoDB, do ní se nahrají tabulky pro tuto aplikaci). Tato aplikace má taky tabulku users, aby se do ní mohli přihlašovat uživatelé. No a já bych potřeboval nějak docílit toho, aby se uživatelé z databáze A, mohli přihlašovat do aplikace, která běží na databázi B. Tj. nějak přinutit aplikaci B, aby místo tabulky B.users používala tabulku A.users. Do té aplikace nechci zasahovat (kvůli pozdějším aktualizacím). Protože obě ty DB poběží na stejném stroji pod stejným uživatelem, napadlo mě použít nějak triggery, které by při manipulaci s tabulkou A.users překopírovaly změny do tabulky B.users. Na tabulku B.users by se snad do budoucna nemělo vůbec šahat, všechny operace s uživateli by měly probíhat jen na tabulce A.users, takže myslím, že by to bylo dobré řešení. Sice mi vadí, že tam data o uživatelích budou 2x (ve 2 databázích), ale to zkousnu.

Jen teda nevím, jestli to pomocí těch trigerů půjde a jestli je to optimální řešení.

(pokud se tu něco podobného už řešilo, tak se omlouvám, ale nenašel jsem to.)
Jan Tvrdík
Profil
jannek:
Triggery jsou v tomto případě asi nejlepším řešením. V případě, že by některá z těch tabulek byla vyloženě read-only, tak jde ještě použít pohled.
llook
Profil
Jestli se na B.users už nebude šahat a má sloužit pouze pro čtení, tak je možnost data z té tabulky přemigrovat do A.users a tabulku B.users nahradit view (něco jako CREATE VIEW users AS SELECT * FROM A.users;).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: