Joe Celko (sql guru) dice che non dovremmo usare tipi di dati proprietari e soprattutto astenerci da cose a livello macchina come bit o byte poiché SQL-Server usa un linguaggio di alto livello. Fondamentalmente, il principio della modellazione dei dati è l'astrazione dei dati. Quindi, discernendo la raccomandazione di cui sopra per campi come "IsActive" ecc., Quale sarebbe la scelta corretta per il tipo di dati, uno che è molto portatile e uno che è decifrato chiaramente dai livelli front-end? Grazie!Rappresenta "Qualcosa" Dati in SQL Server
risposta
In SQL Server, sceglierei il tipo di dati BIT
che corrisponde ai requisiti astratti che si descrivono: può avere 2 valori (che si associano a Sì e No mediante una convenzione ampiamente utilizzata di Sì = 1 e No = 0). Può avere un valore NULL aggiuntivo se lo si desidera.
Se possibile, l'utilizzo di tipi di dati nativi offre tutti i vantaggi di prestazioni, chiarezza e comprensibilità per gli altri. Per non parlare del principio di non complicare le cose quando puoi mantenerle semplici.
SQL Server non ha un tipo di dati booleano in modo che Boolean sia fuori questione. BIT è un tipo numerico che accetta i valori 0 e 1 e null. Di solito preferisco un tipo CHAR con un vincolo CHECK che consente valori come "Y"/"N" o "T"/"F". CHAR consente almeno di estendere il set di valori a più di due se lo si desidera.
BIT presenta il potenziale svantaggio che è non standard, non particolarmente user-friendly e non ben compreso anche dagli utenti di SQL Server. La semantica di BIT è molto particolare in SQL Server e persino i prodotti Microsoft trattano BIT in modo incoerente.
- 1. Quale tipo di dati del server sql rappresenta meglio un doppio in C#?
- 2. Che cosa rappresenta un doppio nel server sql?
- 3. Inserire dati UTF8 in SQL Server 2008
- 4. Raggruppamento dei dati in SQL Server
- 5. Inserire i dati in vista (SQL Server)
- 6. Convertire dati negativi in dati positivi in SQL Server
- 7. Rappresenta il file system nel DB (utilizzando hierarchyid in SQL Server 2008)
- 8. MapReduce utilizzando SQL Server come origine dati
- 9. SQL in SQL Server
- 10. Paging dati in SQL Server CE (Edizione compatta)
- 11. Revisione dati di SQL Server modifica
- 12. sql server compact edition Editor di dati
- 13. SQL Server Tipo di dati esadecimali
- 14. Come esportare i dati da SQL Server?
- 15. Soluzione di archiviazione dati SQL Server
- 16. SQL Server 2008 Dati verticali su orizzontale
- 17. dati da SQL Server per elasticsearch Nodo
- 18. Come generare dati casuali nel server SQL
- 19. Lettura di dati da SQL Server utilizzando Spark SQL
- 20. Criptare i dati in una colonna in SQL Server
- 21. L'inserimento di dati in SQL Server blocca l'intera tabella?
- 22. Intersect in SQL Server
- 23. sql è esattamente uguale a, c'è qualcosa?
- 24. SQL Server ROW_NUMBER() su SQL Server 2000?
- 25. In MVC, un ORM rappresenta il modello?
- 26. Come copiare una tabella in SQL Server, senza i dati?
- 27. Lettura di dati da Microsoft SQL Server in R
- 28. Tipo di dati XML in SQL Server 2008 Query
- 29. Visualizza dati di una tabella in SQL Server 2008
- 30. Tipo di dati per System.Version in sql server
Sì, presupponendo che gli unici due valori possibili siano "Sì" e "No". –
'Boolean' mi sembra ragionevole anche se le sue implementazioni differiscono tra i dialetti SQL. –
@Jarvis. . . Sembra una buona idea se il tuo database supporta 'boolean'. Non tutti lo fanno. La tua domanda sarebbe migliore se dicesse: "Voglio rappresentare le bandiere booleane in un determinato database. Qual è il modo migliore?" - quindi tagga anche la domanda con il database che stai utilizzando. –