PDA

View Full Version : [MYSQL] tabella fake o linkata


Herod2k
22-04-2007, 10:44
Salve ragazzi,

sto cercando di installare due forum sullo stesso server e sullo stesso db mysql, hanno tabelle con nomi differenti quindi non si danno fastidio tra di loro, il mio unico problema è che sto cercando di unificare le registrazioni dei due.
Allo stato attuale ho due tabelle:
a_users
b_users
vorrei che una delle due rimandasse all'altra in modo tale di avere lo stesso login e password su entrambi i forum senza modificare il php del forum.

Si può fare?

Vorrei che il forum B interrogasse la tabella b_users che effettivamente riporta però i dati della tabella a_users.

Grazie

H2K

cionci
22-04-2007, 10:51
Puoi usare dei trigger...sia sull'inserimento che sulla modifica...sempre che tu abbia MySQL 5...

http://database.html.it/articoli/leggi/1973/trigger-in-mysql-5/

In questo modo ogni inserimento/modifica alla tabella a potrà essere fatto anche sull'utente corrispondente nella tabella b...

Herod2k
22-04-2007, 12:24
Puoi usare dei trigger...sia sull'inserimento che sulla modifica...sempre che tu abbia MySQL 5...

http://database.html.it/articoli/leggi/1973/trigger-in-mysql-5/

In questo modo ogni inserimento/modifica alla tabella a potrà essere fatto anche sull'utente corrispondente nella tabella b...

attualmente MySQL che mi fornisce l'Host è mysql 4 cmq se con mysql5 riesco a risolvere passo ad un'altro Host molto volentieri... ora me li studio.

Grazie

H2K

shinya
23-04-2007, 16:36
Io eviterei di usare i trigger. Nel 99% dei casi sono più error-prone e difficili da gestire. Io inserirei lo stesso record nelle due tabelle o userei una vista tipo:


create view my_users as
select * from a_user
union
select * from b_user

cionci
23-04-2007, 16:40
Con la view avresti comunque un problema: se cambi la password (o un qualsiasi altro attributo) su un forum non la cambia nell'altro ;)

|Stan|
23-04-2007, 17:06
Sostanzialmente quello di cui abbiamo bisogno e avere una tabella accessibile da due nomi differenti (a dire il vero è solo il prefix a cambiare), quindi se riesco ad aggirare il problema da mysql sarebbe meglio altrimenti pazienza e mi sporco le mani nel codice del forum :D

cionci
23-04-2007, 17:06
Scusa, ma le tabelle sono uguali come campi ?

cionci
23-04-2007, 17:16
Se le tabelle sono identiche ti basta fare una view semplice sulla tabella principale:

CREATE VIEW TabellaB AS SELECT * FROM TabellaA;

http://www.databasejournal.com/features/mysql/article.php/3399581

|Stan|
23-04-2007, 17:20
Se le tabelle sono identiche ti basta fare una view semplice sulla tabella principale:

CREATE VIEW TabellaB AS SELECT * FROM TabellaA;

http://www.databasejournal.com/features/mysql/article.php/3399581

Si le tabelle sono esattamente le stesse e anche nello stesso db (cambia il prefix).
Grazie, appena ho un attimo provo... ma serve mysql5 o il 4 va bene lo stesso?

cionci
23-04-2007, 17:26
Mi sembra proprio di sì...fai qualche prova in locale prima...

shinya
24-04-2007, 08:38
Mi sembrava di aver capito che bastasse che un utente si registrasse su un forum soltanto per poi avere accesso ad entrambi. Quindi l'utente starebbe su una sola tabella. (O al massimo in entrambe, ma con la union della view viene fatta la distinct delle tuple).

Boh forse ho capito male...

ps. non so se con mysql 4 riesci a fare una vista però...