J'ai une demande pour permettre à une table dynamique d'avoir 1000 colonnes (sélectionnées au hasard par mes utilisateurs finaux). Cela semble être une mauvaise idée pour moi. C'est une table personnalisable donc elle aura un mélange de colonnes varchar(200)
et float
(le flottant correspond le mieux au type double C++ des applications). Cette base de données est principalement un index pour une application héritée et sert de référentiel de rapports. Ce n'est pas le système d'enregistrement. L'application possède des milliers de points de données dont très peu pourraient être normalisés.Combien de colonnes sont trop nombreuses pour une table SQL Server 2005?
Toutes les idées quant à ce que les conséquences sur les performances de ce sont? Ou une taille de table idéale pour diviser cela aussi?
Comme je ne sais pas ce que les champs de 20k valeur de choix des utilisateurs finaux choisir normalisant les tables est impossible. Je peux séparer ces données à plusieurs tables que je devrais gérer dynamiquement (les champs peuvent être ajoutés ou affaissés, les lignes sont ensuite supprimées et le système d'enregistrement est analysé pour remplir la table.) Ma préférence est de repousser normaliser tous les 20k bits de données. Mais je ne vois pas cela se produire.
Ces colonnes concerneraient des points de données dans une application. Si l'utilisateur annonce le champ, les valeurs ne seront généralement pas nulles. –
"Si l'utilisateur ajoute le champ" m'indique qu'il serait nul sinon. Cette liste de champs est-elle dynamique? Allez-vous ajouter des colonnes pour supporter l'ajout de champs? Ensuite, une relation de 1 à plusieurs est en ordre. –