Domanda da neofita : rubrica con diverse tipologia contatto

pitopito

Nuovo Utente
25 Lug 2012
4
0
0
Buongiorno a tutti,

dovrei creare un DB Rubrica in cui alcuni tipi di informazioni, per ogni persona inserita varia come a seconda della tipologia della persona inserita. Vi saranno quindi dei campi "comuni" come nome, cognome, data di nascita etc ma altre informazioni saranno specifiche e afferenti alla TIPOLOGIA ed esempio amico, collega, collega E amico, cliente, per cui se la persona e' Cliente ci dovranno essere informazioni tipo "Azienda", "Partita IVA" etc se e' collega altre informazioni tipo "Piano", "Livello", "reparto" etc.

Orbene. Come posso creare un DataBase progettato secondo i "sacri crismi" e quindi (suppongo) senza creare 3 diverse tabelle amico, collega e cliente?
Devo creare una tabella di "minima" (ad esempio "persona") e poi mettere un campo con "tipologia" e poi relazionrla con tabelle specifiche con i dati di "amico", "collega" e "cliente"? se si mi potete fare un esempi di come fare?

Grazie mille!
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Dipende da quello che vuoi fare tu in seguito.
Un qualcosa di ben organizzato sarebbe fare:
1 tabella RUBRICA (id, nome, cognome, Data_nascita);
1 tabella TIPOLOGIA Collegata a rubrica con l'id della tipologia. Essa è collegata ad altre 3 tabelle:
AMICI, COLLEGHI, CLIENTI. In ognuna di queste ci sono i campi specifici di ogni categoria.

Un altro modo sarebbe quello di fare Un'unica tabella RUBRICA nella quale metti tutti i campi possibili ma non obbligatori. Quindi tu, in base alla tipologia di contatto (amico, cliente o collega) fai compilare un form diverso. Ovviamente ci deve essere un campo 'tipologia' in questa tabella dove vai a salvare il tipo di contatto.

Personalmente io farei come nel secondo modo. Aspettiamo altre risposte che non vengano da un sonnambulo come me :)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
facendo col metodo che consigli (tabella unica) perdi i vantaggi di un db relazionale (es mysql) e rischi di avere una tabella ridondante.
senza contare i possibili errori es. se la tabella unica è
id | nome | tipologia
quando fai l'inserimento può capitare (molto possibile)
1 | pinco | amico
2 | pallino | amico
....
203 | sempronio | amio
....
se cerchi i tipi amico, sempronio non verrà mai fuori
quindi è meglio come minimo due tabelle
tab. tipologia
id | tipo | altri campi se necessari

tab. elenco
id | id_tipo | nome | cognome ecc...

quindi quando si pensa ad un db (tabelle) es:
1. quali sono i dati che devo inserire? da cui i campi possibili
2. il record che si genera ha campi ridondanti?
2.1. SI : faccio due tabelle (affinando poi possono diventare tre, quattro....)
2.2. NO : posso fare una tabella unica

p.s.
carta e matita sono, per me, due strumenti essenziali da usare prima di costruire le tabelle di un db
 

pitopito

Nuovo Utente
25 Lug 2012
4
0
0
Infatti il mio intento e' proprio quello di impratichirmi a stabilire le relazioni tra le tabelle, piu' che avere la rubrica...

A livello concettuale le tabelle dovrebbero essere :
- Anagrafica (ID, Nome, Cognome, etc)
- Tipologia (ID, Tipo) in cui inserire amico, collega, etc

Poi 2 tabelle (se consideriamo solo la tipologia amico e collega) in cui specifichiamo il tipo di info "utili" :
- Info_amico (ID, TipoInfo) in cui inserire ad esempio "squadra_del_cuore, Film_Preferito etc"
- Info_Collega (ID, TipoInfo) in cui inserire ad esempio "reparto, piano etc"

e poi una tabella in cui vengono raccolte tutte le info, relative alla persona e che si riferisce ovviamente alla chiave primaria ID dell'anagrafica.

Secondo voi ha senso?
 

pitopito

Nuovo Utente
25 Lug 2012
4
0
0
Dipende da quello che vuoi fare tu in seguito.
Un qualcosa di ben organizzato sarebbe fare:
1 tabella RUBRICA (id, nome, cognome, Data_nascita);
1 tabella TIPOLOGIA Collegata a rubrica con l'id della tipologia. Essa è collegata ad altre 3 tabelle:
AMICI, COLLEGHI, CLIENTI. In ognuna di queste ci sono i campi specifici di ogni categoria.

Un altro modo sarebbe quello di fare Un'unica tabella RUBRICA nella quale metti tutti i campi possibili ma non obbligatori. Quindi tu, in base alla tipologia di contatto (amico, cliente o collega) fai compilare un form diverso. Ovviamente ci deve essere un campo 'tipologia' in questa tabella dove vai a salvare il tipo di contatto.

Personalmente io farei come nel secondo modo. Aspettiamo altre risposte che non vengano da un sonnambulo come me :)
La prima soluzione mi sembra la piu' "pulita" anche se un po' piu' ostica ed e' quella che mi piacerebbe implementare...proprio per impratichirmi com le relazioni e la progettazione "su carta" :)
pero' nel primo caso...per memorizzare i dati relativi a quella entry nella rubrica, devo creare un'altra tabella ad es. INFO collegata alla tabella RUBRICA vero?
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Edit:
Avevo fatto un ragionamento in quanto pensavo di ver trovato ridondanza alla prima soluzione per poi rendermi conto che era sbagliato.

Riguardo l'ulteriore tabella per inserire altre info sull'utente mi sembra inutile in quanto puoi mettere i campi in Anagrafica.
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
C Semplice domanda di un neofita HTML e CSS 1
S Domanda stupida... C/C++ 0
F domanda sul link juice SEO e Posizionamento 2
A domanda da principiante di facebook... Discussioni Varie 1
G Salutazioni...e 1 domanda Presentati al Forum 1
Annalisa83 Domanda spinosa SEO e Posizionamento 1
L [HTML] Domanda: Utilizzo script HTML e CSS 0
G [HTML] Domanda su responsive topnav HTML e CSS 0
jonnino2004 domanda su acquisto dominio libero Domini 1
T4MAR4 [HTML] punti di domanda al posto delle lettere accentate HTML e CSS 2
booklisa [PHP] Domanda scema di sintassi PHP 2
booklisa [PHP] Domanda semplice (apparantemente) PHP 4
T Domanda su Schema e Relazione Database 0
delphorm [PHP] Domanda stupida (credo) PHP 10
D domanda su EOF Visual Basic 2
G Domanda css HTML e CSS 0
G Domanda sul metodo GET PHP 1
P domanda su galleria HTML e CSS 4
L Domanda difficile: ecommerce CSV 20 000 prodotti E-Commerce 3
otto9due Piccola domanda su ++ e -- operatori di incremento/decremento PHP 0
otto9due Altra piccola domanda di approfondimento PHP 5
otto9due Piccola domanda di approfondimento PHP 3
T Domanda difficile... Javascript 21
R qualche domanda generale PHP 1
P Ciao a tutti ragazzi! avrei subito una domanda da farvi riguardo WORDPRESS, NETWORK, Presentati al Forum 1
Gabriele Visioli Domanda: rapporto fra Visite e Traffico Hosting 3
G Domanda sul sito facebook Discussioni Varie 0
F Domanda per javascript Javascript 0
A Domanda sulla modifica di CSS esistenti HTML e CSS 1
Gabriele Visioli Gestione DNS economico e domanda su affiliazioni legata ad esso Hosting 2
P Domanda... Discussioni Varie 4
filippino phpBB: spam nonostante captcha e domanda di sicurezza phpBB 0
R domanda su guadagni con sito non altervista Guadagnare col Sito 1
M Domanda riguardo i risultati della ricerca di google Joomla 14
bit77 Domanda! ho un file xml e devo estrapolare determinati testi, php è la soluzione? PHP 0
S Domanda per aprire una cartella PHP 0
P Domanda su File Database .sql di un forum Database 1
asheron Domanda importante, sulla vendita di pubblicità online: Vendere e Acquistare pubblicita' online 1
asevenx domanda su include e iframe PHP 3
A Mi presento con una domanda... XD Presentati al Forum 2
D Domanda copyright codice Leggi, Normative e Fisco 3
borgo italia domanda sui cookie PHP 4
emanuelevt Domanda generica su php / framework / risorse online PHP 2
M Domanda DataBase PHP 4
S Semplice domanda con Javascript Javascript 3
borgo italia domanda per alex Flash 6
borgo italia una domanda filosofica Discussioni Varie 10
W domanda su evento al passare del mouse Javascript 2
M Upload immagini (era: una domanda per gli esperi) PHP 2
F domanda cpu & gpu Hardware 0

Discussioni simili