Disons que nous avons un champ qui peut être de plusieurs types, par exemple: chaîne de caractères ou date ou types de données XML.Meilleure façon de stocker le champ de type muti
Maintenant, nous avons deux méthodes pour le stocker dans une base de données
1- en utilisant un champ typé string + Type de définition de champ: perte "de type-aware" capacités de tri, il a besoin coulée
2- tables séparées (StringValues, DateValues, Decimal, XML ... etc): une clé étrangère pointant vers une valeur + champ définissant le type: en quelque sorte compliqué, performance
la seconde méthode peut avoir un avantage supplémentaire si seulement des valeurs uniques ont été stockées: fonctionnera comme un index.
Avez-vous quelque chose en tête?
Note1: De préférence, pensez projet basé sur MS SQL Server 2008 et Linq2SQL
Note2: Peut-être que nous allons discuter de la façon de mettre en œuvre EAV dans une autre question, je pose la question au sujet EAV dans un stockage relationnel.
Note3: Les types peuvent changer, mais pas souvent
Vous ne perdez pas les capacités de tri avec le type définissant le champ si vous utilisez cast et le tri par le type casted. Cela ressemble à la seconde méthode, c'est ce que vous voulez. –
mais ting n'est pas entièrement supporté par SqlServer, sera-t-il efficace pour lancer et trier du côté du code? –