Ciao a tutti,
ho visto che nella tabella prodotti di nwind.mdb c'è un ID primario letterale. Non mi sembra molto facile questo assegnare ad un nuovo prodotto un ID che sia unico. Con quali criteri sceglierlo?
Grazie
Ciao a tutti,
ho visto che nella tabella prodotti di nwind.mdb c'è un ID primario letterale. Non mi sembra molto facile questo assegnare ad un nuovo prodotto un ID che sia unico. Con quali criteri sceglierlo?
Grazie
Giorgio
L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)
E' una domanda che non ha molto senso, così come è posta in senso assoluto, poiché i criteri dipendono dal progetto.Originariamente inviato da giorgiogio48
Con quali criteri sceglierlo?
Un criterio che senz'altro è indispensabile è che il valore sia univoco.
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Tipicamente riferendosi ad una qualche caratteristica (o insieme di caratteristiche) che si suppone univoche per il record.Originariamente inviato da giorgiogio48
Ciao a tutti,
ho visto che nella tabella prodotti di nwind.mdb c'è un ID primario letterale. Non mi sembra molto facile questo assegnare ad un nuovo prodotto un ID che sia unico. Con quali criteri sceglierlo?
Grazie
Gli esempi tipici son tanti, dal codice fiscale, al codicefiscale giustapposto con alte informazioni (es. data iscrizione) per evitare [sia pur difficili] collisioni etc.
Grazie a tutti per le risposte.
Ecco la tabella clienti del database Northwind: sembrerebbe che L'ID venga formato prendendo alcune lettere del cliente, ma con quale criterio?
Però vi chiedo: non è più comodo scegliere in ID tipo contatore?
Giorgio
L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)
Dipende sempre dall'organizzazione aziendale interna.Originariamente inviato da giorgiogio48
Però vi chiedo: non è più comodo scegliere in ID tipo contatore?
Per quanto riguarda i codici dei clienti si può essere d'accordo che un ID autoincrementante vada "meglio" (da un punto di vista pratico), ma non è sempre così.
Ad esempio, molto spesso i codici dei prodotti forniti da un'azienda sono dei codici cosiddetti "parlanti": il solo codice deve poter dare un'idea immediata del tipo di prodotto che esso identifica.
Se i codici dei prodotti fossero dei numeri (autoincrementanti), come si potrebbe capire che il codice 2487 e il codice 7239 sono due penne bic blu? E' impossibile.
Per questo le aziende tendono a costruire il codcie del prodotto usando diversi criteri. Ad esempio, si potrebbe pensare di costruire un codice nel seguente modo:
2 lettere identificano il tipo di prodotto
2 lettere identificano la marca
1 lettera mi identifica la variante (colore) del prodotto
5 caratteri numerici mi identificano un "progressivo"
Ecco che, ad esempio, "PEBIB00001" e "PEBIB00002" sono due PEnne, BIc, Blu e che il codice "PEBIR00001" è una PEnna, BIc, Rossa
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
La prima parte è assodata.Originariamente inviato da LeleFT
Dipende sempre dall'organizzazione aziendale interna...Ad esempio, molto spesso i codici dei prodotti forniti da un'azienda sono dei codici cosiddetti "parlanti": il solo codice deve poter dare un'idea immediata del tipo di prodotto che esso identifica...
La seconda dipende dai casi.
"una volta" esisteva il problema dei "codici parlanti".
Anche oggi esiste, ma assai attenuato, il quanto la potenza delle macchine consente di fare ricerche lookup in tempo reale.
Traduzione: "una volta" il magazziniere doveva inserire il codice giusto, al primo colpo, tra i 20.000 del magazzino, altrimenti gli toccava fare ricerche lente (secondi e secondi) etc.
"oggi" mentre scrivi "qualcosa" è facile avere addirittura l'autocompletamento con tanto di proposta dei match più probabili, giacchè ricerche di sottostringhe per archivi (nella mia esperienza) di fino a 50 milioni di righe si possono effettuare in meno di 50 millisecondi
Talvolta ci sono poi... neppure i codici, nel senso che si usano le vere e proprie descrizioni (ossia codici lunghi)
Il cliente non ha più quindi codice HTSM (=hotel sul mare), ma proprio HOTELSULMARE perchè si possono usare chiavi lunghe (a stringa) senza grandi problemi (oggi)
Ringrazio franzauker e LeleFt per le molto gentili ed estese spiegazioni. Solo una cosa verrei chiedere: perchè l'ID Cliente deve parlare? L'utente non può capire di che si tratta leggendo la descrizione estesa nella colonna NomeSocietà?
Grazie ancora
Giorgio
L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)
@Giorgiogio48: come già detto, dipende dall'organizzazione interna dell'azienda. Ciascuna azienda ha i propri bisogni. Il codice cliente raramente è alfanumerico, ma ti assicuro che esistono dei sistemi (molto vecchi, ma ancora in uso) in cui lo stesso archivio usato per la memorizzazione dei dati dei clienti, viene usato per la memorizzazione dei fornitori. Basta aggiungere al codice (numerico) una "F" per fornitore o "C" per cliente. Ecco che un ID autoincrementante non è più valido.
@franzauker: tutto giusto, ma garantisco che non ho mai (e sottolineo MAI) trovato un'azienda che non abbia adottato un sistema di codifica dei prodotti usando direttamente la descrizione (specialmente in ambienti in cui viene usato SAP, e sono tantissimi). Vuoi per esigenze interne, vuoi per la burocrazia (il codice prodotto è necessario per una corretta gestione dell'inventario di magazzino, soprattutto quando si parla di magazzino fiscale), vuoi per la stampa di un catalogo per i clienti (credimi: non conosco 1 solo cliente che per l'inserimento dei prodotti in un ordine abbia la pazienza di indicare la descrizione, quando con il codice ci si impiega davvero pochissimo), vuoi per tante altre cose. Non confondiamo la ricerca di un prodotto con l'inserimento del codice nella riga ordine di un DB... è chiaro che la ricerca avviene tramite la descrizione (ma nemmeno tanto spesso: oggi si tende a ragionare per categorie), ma l'azienda ha sempre bisogno di un sistema di codifica che sia al contempo facile da leggere e non troppo lungo.
Per quanto riguarda il magazziniere, oggi ha anche a disposizione un bel PDT che legge i codici a barre... ma anche questi sono spesso codici alfanumerici.
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
mmhhh... "una volta" di sicuro.Originariamente inviato da LeleFT
... Il codice cliente raramente è alfanumerico...
Oggi non sarei così assertivo
Io invece ne ho trovate a migliaia@franzauker: tutto giusto, ma garantisco che non ho mai (e sottolineo MAI) trovato un'azienda che non abbia adottato un sistema di codifica dei prodotti usando direttamente la descrizione (specialmente in ambienti in cui viene usato SAP, e sono tantissimi) (...)
"una volta" sì....credimi: non conosco 1 solo cliente che per l'inserimento dei prodotti in un ordine abbia la pazienza di indicare la descrizione, quando con il codice ci si impiega davvero pochissimo) (...)
Oggi, se i codici sono 25.000 (o magari 100.000), fai abbastanza fatica a ricordarti come si chiama il monitor samsung mod. XYZ, di colore rosso e piedistallo nero, che magari è arrivato ieri.
Se ha 10 codici da ricordare il problema non c'è.
"una volta" esistevano (in pratica) "solo" i codici, "dovevi" ricordarti che il cliente tizio aveva codice XYZ.
"Oggi", con lookup ed autocompletamento, le cose son cambiate.
Certamente le "prassi" non cambiano per chi usa strumenti ideati 20 anni fa (o più).
---
Tra l'altro mi pare che sei un pochino in contraddizione con te stesso...
Mah, essenzialmente direi che "oggi" serve principalmente per riportarli nei documenti (DDT, fatture).Non confondiamo la ricerca di un prodotto con l'inserimento del codice nella riga ordine di un DB... è chiaro che la ricerca avviene tramite la descrizione (ma nemmeno tanto spesso: oggi si tende a ragionare per categorie), ma l'azienda ha sempre bisogno di un sistema di codifica che sia al contempo facile da leggere e non troppo lungo.
Ma, nuovamente, gli approcci son diversi tra mini-magazzini, maxi-magazzini e "mega"-magazzini, dove un codice "parlante"... non parla affatto.
mmmhhh... codici a barre alfanumerici? E perchè mai?Per quanto riguarda il magazziniere, oggi ha anche a disposizione un bel PDT che legge i codici a barre... ma anche questi sono spesso codici alfanumerici.
Con riferimento, invece, a tutti quelli che non hanno il bene fisico (es. ufficio ordini) il codice a barre, ovviamente, non è utilizzabile.
---
Ue, non vorrei sembrare "talebano", vorrei solo dare una visione un po' articolata del "mondo", che non è affatto ristretto alle prassi di X, Y o Z.
E, in particolare, gli strumenti "nuovi", tipicamente, adottano strategie che quelli "vecchi" (seppur diffusi) non hanno.
Tutto qui
Addirittura... sarà che siamo tutti così sfortunati (o fortunati, dipende dalle circostanze)...Originariamente inviato da franzauker
Io invece ne ho trovate a migliaia
L'azienda per cui lavoro tratta qualcosa come 30.000 articoli... e funziona così."una volta" sì.
Oggi, se i codici sono 25.000 (o magari 100.000), fai abbastanza fatica a ricordarti come si chiama il monitor samsung mod. XYZ, di colore rosso e piedistallo nero, che magari è arrivato ieri.
Se ha 10 codici da ricordare il problema non c'è.
"una volta" esistevano (in pratica) "solo" i codici, "dovevi" ricordarti che il cliente tizio aveva codice XYZ.
Anche per tutti i nostri competitors.
Credo non valga in generale per tutte le realtà. Poi, si possono fare tutti i distinguo del caso... ripeto, io non ne ho trovato uno tu migliaia."Oggi", con lookup ed autocompletamento, le cose son cambiate.
E non sono così poche, credimi... C'è ancora gente che mangia usando quei sistemi e non solo in Italia.Certamente le "prassi" non cambiano per chi usa strumenti ideati 20 anni fa (o più).
Dove?Tra l'altro mi pare che sei un pochino in contraddizione con te stesso...
Che oggi il codice parlante non parli affatto è una questione completamente diversa: ma da qui ad assumere che vada sempre bene un codice numerico (come può essere quello di un ID autoincrementante) ce ne passa... un esempio su tutti: sai che bello, per un'azienda che espone i propri prodotti sul market place della pubblica amministrazione (CONSIP), avere gli stessi codici "dal punto di vista alfanumerico" di quelli della concorrenza? Se tutti usassero i codici numerici per i prodotti sarebbe un bel problema. Le aziende vogliono che i loro codici corrispondano ai loro prodotti e questo si ottiene solo costruendo i codici in modo quanto più possibile diverso dagli altri in modo da ottenere il minor numero di collisioni... Poco importa che il mio codice 123 corrisponda ad una penna, mentre il codice 123 della concorrenza corrisponda ad un Hard Disk... se il cliente inserisce "123" c'è la possibilità che la sua attenzione sia attirata verso i prodotti della concorrenza. Giusto per dirne una: non mi pare che aziende come HP usino per i loro prodotti dei codici numerici...Mah, essenzialmente direi che "oggi" serve principalmente per riportarli nei documenti (DDT, fatture).
Ma, nuovamente, gli approcci son diversi tra mini-magazzini, maxi-magazzini e "mega"-magazzini, dove un codice "parlante"... non parla affatto.
Per il punto visto sopra.mmmhhh... codici a barre alfanumerici? E perchè mai?
Questa non l'ho capita...Con riferimento, invece, a tutti quelli che non hanno il bene fisico (es. ufficio ordini) il codice a barre, ovviamente, non è utilizzabile.
Ma infatti, qui si discute, mica si vuole fare altro... dal mio punto di vista, comunque, mi pare che sia una prassi più diffusa quella di usare codici alfanumerici piuttosto che codici numerici autoincrementanti.Ue, non vorrei sembrare "talebano", vorrei solo dare una visione un po' articolata del "mondo", che non è affatto ristretto alle prassi di X, Y o Z.
Indubbiamente.E, in particolare, gli strumenti "nuovi", tipicamente, adottano strategie che quelli "vecchi" (seppur diffusi) non hanno.
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza