Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [MySQL] Cosa utilizzare per "Predefinito"

    Ciao a tutti, vorrei avere una dritta per sapere cosa utilizzare per ogni campo nella proprietà "Predefinito"

    quando usare "null", quando "none" ... quando mettere "come definito" con un campo vuoto (soluzione quest'ultima che uso spesso)??
    in sintessi posso vedere: null, none o un'area vuota nella colonna "Predefinito"



    nei varchar cosa è meglio utilizzare??

    nelle date?

    nei campi che conterranno valori relativi ad id di altre tabelle collegate??



    Vorrei capire voi che strada seguite

    Grazie
    Iceberg

  2. #2
    NULL = non esiste, manca, non c'e', quindi e' diverso da empty. Serve specialmente nei raggruppamenti, per fare le medie, conteggiare record. Se NULL viene ignorato. Va specificato nella query in modo esplicito . where campo IS NULL | NOT NULL
    Un campo NULL valorizzato e poi cancellato non torna NULL ma empty.

    CAMPO VUOTO - Il campo NON e' NULL, esiste ma senza valore associato. Viene contato per fare la media, per il count(), Se valorizzato e cancellato torna vuoto e non sara' mai NULL.

    Predefiniti var/varchar/numerico/data - ci metti quello che ti serve. Non puoi pero' metterci una funzione. tipo: data default curdate() ma solo un timestamp (current timestamp) che poi pero' sara' soggetto ad altre condizioni.

    NUMERICO e DATA - il default del campo vuoto e' 0 oppure 0000-00-00 perche' non ha senso un NULL come data.

    Campi per la relazione con altre tabelle: numerico, default 0 in modo tale che se campo = 0 significhi non relazionato. Evito sempre campi non numerici o di lunghezza variabile.

    Detto questo tutto dipende sempre dal tuo progetto. Non esiste un menu' buono per tutte le stagioni.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Campi per la relazione con altre tabelle: numerico, default 0 in modo tale che se campo = 0 significhi non relazionato. Evito sempre campi non numerici o di lunghezza variabile.
    Quindi negli id delle tabelle collegate
    meglio mettere 0 se non c'è una relazione ... corretto??


    Secondo dubbio:

    Se ho dei campi che contengono valori tipo: titolo, descrizione, via, città....
    è corretto mettere NULL se il campo non è valorizzato???
    oppure è meglio empty??
    dato che non mi serve una distinzione tra: record creato lasciando il campo vuoto (NULL) oppure record creato e successivamente cancellato il valore del campo (quindi empty)
    in questo modo avrei sempre empty e sarebbe una soluzione più "uniforme"
    cosa ne pensi??
    in quest'ultimo caso NON dovrei abilitare il flag che il campo può essere "NULL"


    Terzo dubbio:

    l'id (chiave primaria) ho visto che ha spesso predefinito "none"
    corretto??


    Grazie ancora!
    Iceberg

  4. #4
    Metti 0 se non esiste la relazione ad altro id di altra tabella.

    Nei campi dei dati che citi non mettere NULL ma empty. Se metti NULL e poi vuoi fare una query che ti estragga tutti i nominativi che mancano di un indirizzo dovrai precisare

    where campo IS NULL OR campo = '' perche' empty e' != da NULL

    il che mi sembra una baggianata se NULL non ti serve a qualcosa. Lascia il campo come NOT NULL default ''

    chiave primaria default none quando ci pensa l'auto increment a valorizzarla. Quindi deve essere auto_increment

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.