Je voudrais poser une question de manière plus directe et générale:
Comment créez-vous une table pour stocker des valeurs qui pourraient être de plusieurs types différents?
Dans mon cas, les valeurs fournissent des diagnostics sur un événement. Ex: l'événement s'est produit -> Stocker les lectures de plusieurs automates qui contiennent des informations pertinentes sur l'événement. Les automates peuvent surveiller tout type de données.
Quelques exemples auxquels je peux penser:
- Créez une colonne pour chaque type possible et créez une autre colonne pour indiquer la colonne à utiliser
- Ex: Cols: IntVal, StrVal, BoolVal, Type. Vals: null, null, True, "BOOL"
- Stockez les valeurs n'importe quoi en tant que varchar
la source
NOT NULL
? Personnellement, je suis un grandNOT NULL
partisan de la constance autant que possible .Je pense que s'il était absolument nécessaire de stocker une valeur de cette façon dans une base de données relationnelle, j'utiliserais une solution comme les colonnes JSON de Microsoft SQL Server .
la source