Domanda

Devo memorizzarlo in un singolo campo data / ora o campi data e ora separati? Preferisco memorizzarlo come un singolo campo data / ora ma devo sapere quando un utente non ha inserito una porzione di tempo.

Come archiviarlo al meglio nel database? Sto usando Postgresql.

È stato utile?

Soluzione

Ci sono sicuramente dei motivi per cui questa è una cattiva idea. Ci sono anche motivi per cui le tue scelte sono limitate. È una cattiva idea perché è un singolo elemento di dati e per la ragione più pratica che non puoi memorizzare un fuso orario se hai due campi.

Come accennato in precedenza, i null sono l'ovvio vantaggio dell'uso di due campi.

Potresti anche prendere in considerazione l'utilizzo di un singolo campo datetime e la memorizzazione di un flag per indicare se l'utente ha inserito o meno un orario. Questa potrebbe essere una bandiera booleana. Tuttavia, dovrai comunque pensare a come utilizzare questi dati: l'immissione di una sola data in un campo data / ora porta a impostare un componente orario su mezzanotte. Ciò avrà implicazioni nell'ordinamento e nella selezione. Inoltre, se stai memorizzando fusi orari, dovrai fare molta attenzione quando usi i dati.

Per soddisfare la tua esigenza di sapere se è stato inserito un orario devi avere due campi. Tuttavia, non è necessario che il secondo campo sia un momento.

Altri suggerimenti

La risposta ovvia è usare due campi separati; allora puoi usare i valori NULL.

Se si sceglie di utilizzare un campo, sarà necessario scegliere una parte del tempo magico che indica "non è entrato in tempo reale", che ha il rischio di coincidere con un tempo reale (per quanto improbabile).

Inoltre, se si intende utilizzare spesso la data e l'ora separatamente separatamente, potrebbe essere conveniente utilizzare campi separati; altrimenti dovrai spesso utilizzare le funzioni di selezione per estrarre la parte rilevante di un campo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top