| | |
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Autor | Správa |
---|
Registrovaný: 12.02.16 Prihlásený: 15.12.23 Príspevky: 6 Témy: 3 |
Zdravim. Potreboval by som poradit ohladom spojenia registracnych udajov na viacerych strankach. Je 7 webov na joomle a 7 MySQL databaz (takmer struktura len ine data v nej) a potreboval by som aby vsetky udaje o uzivateloch sa spracovavali len v jednej databaze a zdielali sa do dalsich. Samozrejme 1 joomla ma 6000 php suborov a neviem kolko selectov na tabulku registrovanych uzivatelov. Takze najst a prepisat vsetky selecty na vsetkych weboch na jednu spolocnu DB je takmer nemozne. Potrebujem vsetky prikazy ohladom danej tabulky (usertable1) a danej DB (DB1) smerovat inam do spolocnej tabulky (usertable2) v inej databaze (DB2).
Moja predstava je ze by som otreboval nieco najlepsie na strane DB (alebo neviem ako sa to robi) co by tie tabulky nejak spajalo / presmerovalo. Keby v MySQL existovalo nieco ako funkcia ze ak pride select/update/insert na tej DB1 a tabulke usertab1 ono to presmeruje na inu DB2 a usertab2 tam to mam vyriesene. Ako keby zdielali MySQL databazy jednu tabulku medzi sebou.
Vdaka.
// Spojený príspevok 12.02.2016 8:40
Nieco som nasiel ak je to ono ale neviem kde to pouzit tieto prikazy. Cisto zadat 1x ako SQL prikaz pre DB?
Instructions: Find & Replace "josPrefix2" with the Joomla DB prefix you want to share TO Find & Replace "josPrefix1" with the Joomla DB prefix you want to share FROM Find & Replace "dbSite1" with the Joomla DB name you're sharing FROM
Code: RENAME TABLE `josPrefix2_users` TO `josPrefix2_bak_users`; RENAME TABLE `josPrefix2_session` TO `josPrefix2_bak_session`; RENAME TABLE `josPrefix2_usergroups` TO `josPrefix2_bak_usergroups`; RENAME TABLE `josPrefix2_user_notes` TO `josPrefix2_bak_user_notes`; RENAME TABLE `josPrefix2_user_profiles` TO `josPrefix2_bak_user_profiles`; RENAME TABLE `josPrefix2_user_usergroup_map` TO `josPrefix2_bak_user_usergroup_map`; RENAME TABLE `josPrefix2_viewlevels` TO `josPrefix2_bak_viewlevels`;
CREATE VIEW josPrefix2_users AS SELECT * FROM dbSite1.josPrefix1_users; CREATE VIEW josPrefix2_session AS SELECT * FROM dbSite1.josPrefix1_session; CREATE VIEW josPrefix2_usergroups AS SELECT * FROM dbSite1.josPrefix1_usergroups; CREATE VIEW josPrefix2_user_notes AS SELECT * FROM dbSite1.josPrefix1_user_notes; CREATE VIEW josPrefix2_user_profiles AS SELECT * FROM dbSite1.josPrefix1_user_profiles; CREATE VIEW josPrefix2_user_usergroup_map AS SELECT * FROM dbSite1.josPrefix1_user_usergroup_map; CREATE VIEW josPrefix2_viewlevels AS SELECT * FROM dbSite1.josPrefix1_viewlevels;
|
|
Registrovaný: 12.02.16 Prihlásený: 15.12.23 Príspevky: 6 Témy: 3 |
Zdravim nikto nijaky napad? Sme ochotny to zaplatit.
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 17.02.2016 21:28 | |
|
Cez pohľady by sa to dalo v prípade, že sú tie databáze na jednom stroji. Dá sa to aj keď nie, ale toto je jednoduchšia varianta. Takže sú tie databáze na jednom stroji? (teda dá sa odkazovať z jednej do druhej?).
Ak nie, tak to prepisovanie joomly by som úplne nezavrhoval. Ak je navrhnutá správne, mohlo by sa to prepísať len na jednom mieste, alebo len pár. Ale joomlu nepoznám, takže neviem.
No a ak stále nič, tak otázka - Běží to na hostingu, alebo na vps/vlastnom servri? Ak na hostingu, tak zásahy do mysql asi nebudu možné.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 12.02.16 Prihlásený: 15.12.23 Príspevky: 6 Témy: 3 |
No Vsetky weby su na jednom spolocnom hostingu. Nemal by byt problem spojit im DB len kazda tabulka by mala iny pefix. Ale asi teda prve skusim prepisat v joomle smerovanie uzivatelov a kosika na spolocne tabulky pre vsetky shopy a budem dufat ze najdem vsetky miesta kde sa cita / zapisuje a nebude ich vela.
Len este jedna vec. V DB nejde nieco ako "presmerovanie" tabulky na inu tabulku co by vsetko vyriesilo...
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 21.03.2016 11:38 | |
|
Ak sú všetky databáze na rovnakom stroji a dá sa medzi nimi odkazovať, tak to máš celkom jednoduché. Popíšem zjednotenie prihlasovania užívateľov. Zmena spoločného košíka (o čom si sa teraz zmienil prvý krát) môže byť zložitejšia. 1. Máme databázy web1, web2 (a prípadne ďalšie, postup bude rovnaký). Chcem, aby všetky weby používali tabuľku web1.users (joomlu nepoznám, nechce sa mi to hľadať, takže názvy tabuliek si vymyslím). Existuje teda tabuľka web1.users a web2.users. 2. V databáze web2 odstránim tabuľku users - drop table web2.users. 3. V databáze web2 vytvorím view ako Kód: create view users as select * from web1.users
Tento pohľad bude updatable (viz http://dev.mysql.com/doc/refman/5.7/en/view-updatability.html ), takže všetky zmeny v každom webe sa prejavia v tabuľke web1.users. 4. Otestujem a snáď to bude fungovať. 5. Rovnaký postup aplikujem aj na prípadné príbuzné tabuľky (uživ. profily, uživ. práva apod) Doporučujem vyskúšať nanečisto, píšem to z hlavy, testovať sa mi to nechce.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|