Implementazione EAV

Ciao a tutti,

vorrei implementare un modello EAV in mysql ed avevo pensato ad una cosa del genere per non essere costretto ad effettuare tutta la validazione dei dati attraverso la UI dell'applicazione:

TABELLA UTENTI

id

nick

password

TABELLA ATTRIBUTI

id (int)

nome (varchar)

datatype (enum: int,double,varchar,text,date)

TABELLA VALORI

id (int)

id_utente (int)

id_attributo (int)

valore_int (int)

valore_double (double)

valore_varchar (varchar)

valore_text (text)

valore_date (date)

con questi campi che possono essere NULL:

valore_int (int)

valore_double (double)

valore_varchar (varchar)

valore_text (text)

valore_date (date)

Prima domanda: come vi pare come struttura?

Seconda domanda: č possibile in qualche modo fare una query del tipo

INSERT INTO valori

VALUES ($id_utente, $id_attributo, $valore)

e poi mysql mi mette il dato automaticamente nel campo giusto guardando quale tipo di dato ha quel particolare attributo?

O magari anche una determinazione del tipo di dato al volo, ma temo che questo sia chiedere troppo.

Grazie mille

inviato 7 anni fa
Sifro
X 0 X

La validazione dei dati dovrai sempre farla, indipendentemente dalla struttura del database. L'utente infatti potrą sempre inserire qualsiasi dato in un form, indipendentemente dalla struttura del database.

Secondo me č inutile e dispendioso studiare una struttura del database per evitare di effettuare dei controlli.

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

Ciao e grazie per la risposta.

Come struttura potrebbe andar bene questa, solo lascio da parte eventuali 'archibugi' per effettuare la validazione e l'inserimento in automatico?

risposto 7 anni fa
Sifro
X 0 X

Ma la tipologia ed il numero di attributi cambia da utente ad utente? Oppure tutti gli utenti condividono lo stesso numero e tipo di attributi, ovviamente con valori diversi?

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

Ciao,

- non tutti gli utenti hanno lo stesso numero di attributi (a seconda del loro ruolo, potrebbero variare).

- tutti gli utenti di uno stesso ruolo hanno gli stessi attributi

- gli attributi di un ruolo oggi sono 3, domani potrebbero essere 5, fra 10 giorni 2, nel mese prossimo 4... Quindi voglio gestire il tutto in maniera dinamica

A presto!

risposto 7 anni fa
Sifro
X 0 X

Ok, se ti serve questa flessibilitą allora quella struttura va bene.

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

ok, grazie mille per il confronto :)

risposto 7 anni fa
Sifro
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda