Newsgroup: it.comp.software.database
Titolo: naming convention

ciao
mi sapete suggerire una naming convention per database documentata con
cui vi trovate bene? la cosa difficile e' che mi servirebbe
con nomenclatura in italiano...
grazie
Rob

 con nomenclatura in italiano...
Purtroppo e` quest'ultima che fa calare drasticamente le possibilita`...
In inglese trovi lo standard Ansi, un libro di Celko, tonnellate
di doc gratis...
Se trovi qualcosa (o se fai tu la traduzione :-) posta qui il link,
thank you! 

Il 25/07/2008, The man with two watches ha detto :

ok,
vediamo un attimo di fare chiarezza.
---
#1 la prima domanda. usare o non usare alias delle tabelle?
per alias intendo un prefisso nel campo, che ricordi la tabella
art_descrizione
art_prezzo
per capirci
---
#2 la seconda domanda. ai campi che sno fk, va assegnato l'alias di
cui sopra?
articoli.art_listino_id
o
articoli.listino_id ?
nel secondo caso non posso fare natural join... :o(
---
#3 la terza (la piu' difficile!). nelle tabelle M a M, come si
chiama un terzo campo?
tabella articoli2varianti (n varianti per n articolo, ogni combinazione
un prezzo diverso)
articolo_id
variante_id
prezzo
con l'alias, come va nominato il campo prezzo? qualcosi di
bruttissimo come:
art2var_prezzo
mi fa ribrezzo :o)
continuo a pensare che l'alias nel nome del campo sia necessario
ma magari sbaglio io...
che ne pensate?
ciao
Rob

 vediamo un attimo di fare chiarezza.
Personalmente, per un'applicativo sviluppato per conto terzi, ho usato
questa nomenclatura:
- tabelle: applicazione_nometabella (e.g. newsreader_articles);
- colonne: nometabella_nomecolonna (e.g. articles_messageid):
- tabelle M a M: applicazione_tabella1_tabella_2 (e.g.
  newsreader_articles_headers);
- colonne M a M: tabella1_tabella2_nomecolonna (e.g.
  articles_headers_messageid);
- chiavi primarie: pk_applicazione_nometabella (e.g.
  pk_newsreader_articles);
- foreign key: fk_applicazione_nometabella_# (e.g.
  fk_newsreader_articles_headers_1)
- sequenze: applicazione_nomesequenza_seq_1 (e.g.
  newsreader_posted_seq_1);
- trigger: trg_applicazione_nometabella_# (e.g.
  trg_newsreader_articles_1).
Tutto questo, ovviamente, tenendo conto dei limiti di lunghezza dei nomi
di tabella (di solito, 30 caratteri)
Enrico
P.S. So gia` cosa ne pensate, e si: in quel periodo ero abbastanza
fuori di testa :)

 che ne pensate?
Beh non sarebbe necessario se ogni colonna avesse un nome univoco,
ma non posso prevedere se un domani debba aggiungere tabelle,
fare il merge di due schemi etc... cosi' il db e` meglio schermato
dai cambiamenti.
bye 

 fuori di testa :)
e' molto verbosa in effetti... ma come ti trovi?

 dai cambiamenti.
alla fine ho messo prefissi dappertutto anche perche' l'applicazione
non mi lasciava scelta. anzi ormai ho realizzato che scrivo
applicazioni senza richiamare la tabella (tabella.campo) quindi
mi troverei malissimo senza un prefisso...
altri quesiti possono essere intorno alla semplicita' di
lettura/scrittura invece della logica
tipo_articoli (come in una corretta pronuncia in italiano...)
o
articoli_tipo (raggruppando tutte le tabelle articolo_*)
e poi
id_articolo
o
articolo_id
e via di seguito...
la verita' e' che usando una nomenclatura in inglese non ci sarebbe
nessun problema...
cmq grazie del confronto.
ciao
Rob

 e' molto verbosa in effetti... ma come ti trovi?
Considerando che ho usato 'sto metodo una sola volta, e che le query le
faccio con SQuirreL (che ha l'autocompletamento), direi bene :)
Enrico