Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Conception de BD et récupération de données à partir d'une table lourde

Ne vous en tenez pas à votre conception actuelle. Vos groupes répétitifs sont peu pratiques et se limitent d'eux-mêmes... Que se passe-t-il lorsque quelqu'un télécharge 151 fois ? Normalisez cette table de sorte que vous ayez un de chaque type par ligne plutôt que 150. Vous n'aurez pas besoin de mapper de cette façon car vous pouvez sélectionner SAPDATA à partir du positioncol sans vous soucier si c'est 1-150.

Vous voulez probablement une table PROJECTS avec un ID, une table PROJECT_UPLOADS avec un ID et un FK à la table PROJECTS. Ce tableau aurait Position, SourceDate, Formula et IsActive compte tenu de votre cas d'utilisation ci-dessus.

Ensuite, vous pourriez faire des choses comme

select p.name, pu.position from PROJECTS p inner join PROJECT_UPLOADS pu on pu.projectid =p.id WHERE pu.position ='SAPDATA'

etc.