Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

DB-Design und Datenabruf aus einer schweren Tabelle

Bleiben Sie nicht bei Ihrem aktuellen Design. Ihre sich wiederholenden Gruppen sind unordentlich und selbstbegrenzend ... Was passiert, wenn jemand 151 Mal hochlädt? Normalisieren Sie diese Tabelle so, dass Sie einen von jedem Typ pro Zeile haben, anstatt 150. Sie brauchen auf diese Weise kein Mapping, da Sie SAPDATA aus der Positionsspalte auswählen können, ohne sich Sorgen zu machen, ob es 1-150 ist.

Wahrscheinlich möchten Sie eine PROJECTS-Tabelle mit einer ID, eine PROJECT_UPLOADS-Tabelle mit einer ID und einen FK zur PROJECTS-Tabelle. Diese Tabelle hätte Position, SourceDate, Formula und IsActive in Anbetracht Ihres obigen Anwendungsfalls.

Dann könnten Sie Dinge tun wie

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

usw.