Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478

    [MySQL] Gestione dei campi INT

    Avendo una tabella formata da soli 3 campi di tipo int e sapendo in anticipo che l'unico campo sempre valorizzato sarà solo il primo, qual'è il modo migliore per gestire la valorizzazione, a seconda dei cai, di uno soltanto degli altri 2 campi restanti?

    Ad esempio, diaciamo che la struttura della tabella potrebbe essere simile a questa

    codice:
    id_campo1 smallint(5) NOT NULL
    id_campo2 smallint(5) NOT NULL
    id_campo3 tinyint(3) NOT NULL
    non riesco ad ottenere un risultato come questo

    codice:
    +-----------+-----------+-----------+
    | id_campo1 | id_campo2 | id_campo3 |
    +-----------+-----------+-----------+
    |         1 |         1 |           |
    +-----------+-----------+-----------+
    in quanto nel campo id_campo3 non è possibile memorizzare un valore diverso da un'intero. Solo valorizzando il campo vuoto, che potrebbe essere una volta il campo2 e l'altra il campo3, con "0" non ho problemi.

    Certamente questo comportamento è più che giusto seguendo la logica delle proprietà dei tipi di campi e dei valori che questi possono accettare o meno. Mi chiedevo se si potesse fare diversamente ottenendo un risultato simile all'esempio fatto prima, quindi senza dover settare a zero "0" il campo che dovrà restare vuoto. E' possibile?

  2. #2
    Al volo mi vengono in mente due alternative:
    - fai in modo che i campi 2 e 3 possano contenere valori NULL;
    - lasci tutto così e gli assegni il valore predefinito 0 e poi in fase di visualizzazione
    "sostituisci lo 0 con lo spazio"

  3. #3

    Re: [MySQL] Gestione dei campi INT

    Originariamente inviato da neida
    Avendo una tabella formata da soli 3 campi di tipo int e sapendo in anticipo che l'unico campo sempre valorizzato sarà solo il primo, qual'è il modo migliore per gestire la valorizzazione, a seconda dei cai, di uno soltanto degli altri 2 campi restanti?
    da come lo descrivi sembrerebbe che solo uno dei due sara' valorizzato (oltre al primo).

    "forse" (forse perche' non si sa a che ti serve) potresti fare i tre campi in questo modo:

    codice:
    +-----------+-----------+-------------+
    | id_campo1 |  valore   | tipo_valore |
    +-----------+-----------+-------------+
    |         1 |         1 |   1 o 2     | 
    +-----------+-----------+-------------+

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

  4. #4
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Originariamente inviato da piero.mac
    da come lo descrivi sembrerebbe che solo uno dei due sara' valorizzato (oltre al primo). [...]
    Infatti, è così. Non potranno essere settati entrambi.

    La tabella servirà a raccolgiere degli identificativi numerici relativi ad entità separate. Di queste entità solo quella settata nel primo campo sarà sempre valorizzata, mentre per gli altri due campi restanti, a seconda dei casi, quando sarà settato il primo il secondo sarà vuoto e viceversa.

    Grazie per l'esempio proposto con la struttura della tabella, ma in questo caso non sarebbe adatto. Difatti l'ipotesi l'hai messa in "forse" a ragione.

    Originariamente inviato da Bl@ckH@t
    [...] fai in modo che i campi 2 e 3 possano contenere valori NULL; [...]
    Giusta osservazione! ma, scusami, avevo dimenticato di aggiungere che in questo modo ci avevo già provato e, anche se non ho avuto particolari problemi, mi chiedevo se esistesse ancora un'altro sistema, senza dover cambiare il tipo di campo però.

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.