sql >> Database teknologi >  >> RDS >> Sqlserver

Angiver primær/standardpost i databasen

Jeg forstår dit problem, men har spørgsmål om dele af det, så jeg vil være lidt mere generel.

  • Hvis det overhovedet er muligt, vil jeg gemme lager-/backup-varehusdata med dine lagerdata (enten direkte hængende af lagre, eller hvis det er produktspecifikt uden for lagertabellerne).
  • Hvis opsætningen skal beregnes gennem din forretningslogik, bør posterne hænge ud af tabellen ordre/ordre_vare

Med hensyn til, hvordan man implementerer strukturen i SQL, vil jeg antage, at alle ordrer sendes ud af et enkelt lager, og at forsendelsen skal hænges fra ordretabellen (men ideerne bør kunne anvendes andre steder):

  • Den ældre måde at håndhæve nul/én backup-varehuse på ville være at hænge en Warehouse_Source-record af ordretabellen og inkludere et "IsPrimary"-felt eller "ShippingPriority" og derefter inkludere et sammensat unikt indeks, der inkluderer OrderID og IsPrimary/ShippingPriority.

  • hvis du kun vil have ét backuplager, kan du tilføje felterne ShippingSource_WareHouseID og ShippingSource_Backup_WareHouseID til ordren. Selvom det ikke er den rute, jeg ville gå.

I SQL 2008 og nyere har vi den vidunderlige tilføjelse af Filtrerede indekser . Disse giver dig mulighed for at tilføje en WHERE-klausul til dit indeks -- hvilket resulterer i et mere kompakt indeks. Det har også den ekstra fordel, at det giver dig mulighed for at opnå nogle ting, som kun kunne gøres gennem triggere i fortiden.

  • Du kan sætte et unikt filtreret indeks på OrderID &IsPrimary/ShippingPriority (WHERE IsPrimary =0).

Tilføj en kommentar eller sådan, hvis du vil have mig til at forklare yderligere.



  1. Bruger SqlDependency med navngivne køer

  2. Psychopg2 db-forbindelse hænger ved mistet netværksforbindelse

  3. Hvordan sender man e-mail fra SQL Server?

  4. send sql-fil til nodejs til udførelse som helhed