Je suis en train de concevoir une base de données en utilisant MSSQL server 2005 pour stocker les valeurs de journaux de différents périphériques. Le type de données des valeurs peut être booléen, int-32 ou 64 bits doubleQuelle est la meilleure façon de stocker plusieurs types de données dans la base de données
Il y aura une table de recherche appelé channels
:
ID(PK) | int32
device_name | varchar(32)
Il y aura une table appelée values
pour stocker la valeur. Donc, boolean et int-32, les valeurs doubles seront castés au type de données DECIMAL.
ID(foreign key to [email protected]) | int32
logtime | DATETIME
value | DECIMAL
La raison pour laquelle je fais ce qui est l'utilisateur final peut sélectionner les données à l'aide d'une simple déclaration de sélection sur une table, comme select logtime,value from values where ID = 1
sans connaître le type de données du canal.
Mais c'est un gaspillage de mémoire, puisque maintenant j'ai stocké int32 et booléen à Decimal. Je suis nouveau à la programmation de base de données, je me demande si quelqu'un sait une meilleure façon de le faire?
espace disque est pas cher - Je pense que votre approche initiale (convertir en décimal) est optimale, pas besoin de bidouiller avec des valeurs nulles ou des champs différents. – Arvo