ugrás a tartalomhoz

Adatbázison belüli tábla tükrözés, azonos tábla használata (prestashop)

kotapeter · 2011. Aug. 22. (H), 12.54
Sziasztok!

Adott két webáruház, prestashop rendszerben. Azt szeretném megoldani, hogy ha valaki az egyikbe regisztrál akkor, a másikba már ne kelljen neki, tehát
1. azonos user táblát használjon a két rendszer
2. tükrözve legyen a két rendszer user táblája

1 adatbázison belül van a két rendszer táblái, külön prefix-el.
Van-e valamiféle megoldás erre a problémára?

Előre köszönöm:
Kota
 
1

Konkrét tapasztalatom még

bb0072 · 2011. Aug. 22. (H), 13.17
Konkrét tapasztalatom még nincs ilyenben, de én a következő irányban indulnék el. A 2-es számú webshop user táblája az 1-es számú webshop user táblájából készült view legyen.

DROP TABLE prefix2_user;
CREATE VIEW prefix2_user AS SELECT * FROM prefix1_user;
Ezután pedig lehet insert-elni, update-elni, előtte még ezt azért nézd át: http://dev.mysql.com/doc/refman/5.0/en/view-updatability.html
2

Visszafele is működne? Ha a

kotapeter · 2011. Aug. 22. (H), 13.36
Visszafele is működne? Ha a felhasználó a 2-es weboldalra regisztrál, akkor átkerülnek az adatai az 1-es weboldal user táblájába?
3

Erre mondtam, hogy nincs

bb0072 · 2011. Aug. 22. (H), 13.41
Erre mondtam, hogy nincs tapasztalatom ebben. Elvileg egyébként igen. Tégy egy próbát, és osszd meg velünk is!
4

Mivel az üzemeltetési

H.Z. v2 · 2011. Aug. 22. (H), 19.06
Mivel az üzemeltetési környezet nem derül ki a kérdésből (prestashop nekem semmit sem mond), csak a saját véleményemet tudom mondani: ilyen esetben az authentikációt egy önálló szerverrel oldanám meg, pl. LDAP-ból és ezzel a szerverrel kommunikálnának a webáruházak.

update: Egy adatbázisba - többek közt biztonsági okokból - nem tennék két független rendszert.
5

Megoldás

janoszen · 2011. Aug. 22. (H), 19.19
Olyat tudsz csinálni, hogy triggert teszel a táblára és az áttükrözi a másikba.

A PrestaShopnak egyébként a jó édes anyját, autentikáció után 4 kB-ban nem férnek el a fejlécek (!), ezért az nginx webszerverrel jól össze is veszik.
6

Trigger

kotapeter · 2011. Aug. 23. (K), 11.22
Utánanéztem ennek a TRIGGER dolognak.
Az adatbázisban az alba_customer és a cool_customer-ben vannak a vevők. A következő kódot illesztettem be az alba_custemerbe:
DROP TRIGGER IF EXISTS alba.trig//

CREATE TRIGGER alba.trig BEFORE INSERT ON alba.alba_customer
 FOR EACH ROW BEGIN

INSERT INTO alba.cool_customer(id_customer, id_gender, id_default_group, firstname, lastname, email, passwd, last_passwd_gen, birthday, newsletter, ip_registration_newsletter, newsletter_date_add, optin, secure_key, note, active, is_guest, deleted, date_add, date_upd) VALUES(NEW.id_customer, NEW.id_gender, NEW.id_default_group, NEW.firstname, NEW.lastname, NEW.email, NEW.passwd, NEW.last_passwd_gen, NEW.birthday, NEW.newsletter, NEW.ip_registration_newsletter, NEW.newsletter_date_add, NEW.optin, NEW.secure_key, NEW.note, NEW.active, NEW.is_guest, NEW.deleted, NEW.date_add, NEW.date_upd, NOW());

END
//
(elválasztó karakter: //)


Lefut az SQL, azonban, ha regisztrálnék a webáruházba, akkor ezt az üzenetet kapom: "An error occurred while creating your account." Amennyiben kiveszem a TRIGGER-t akkor lehet regisztrálni.

Rosszul csináltam a TRIGGER-t? Mi a helyes módja?