Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Показва основен/запис по подразбиране в базата данни

Разбирам проблема ви, но имам въпроси относно части от него, така че ще бъда малко по-общ.

  • Ако изобщо е възможно, бих съхранявал складови/резервни складови данни с вашите данни за инвентара (или директно окачване на складове, или ако е специфичен за продукт извън таблиците с инвентара).
  • Ако настройката трябва да се изчисли чрез вашата бизнес логика, тогава записите трябва да висят извън таблицата order/order_item

По отношение на това как да внедря структурата в SQL, ще приема, че всички поръчки се доставят от един склад и че доставката трябва да бъде окачена извън таблицата с поръчки (но идеите трябва да са приложими и другаде):

  • По-старият начин за налагане на нула/един резервни складове би бил да се окачи Warehouse_Source запис на таблицата с поръчки и да се включи поле "IsPrimary" или "ShippingPriority", след което да се включи съставен уникален индекс, който включва OrderID и IsPrimary/ShippingPriority.

  • ако някога ще имате само един резервен склад, можете да добавите полета ShippingSource_WareHouseID и ShippingSource_Backup_WareHouseID към поръчката. Въпреки това, това не е маршрутът, по който бих тръгнал.

В SQL 2008 и по-нови имаме прекрасното допълнение на Филтрирани индекси . Те ви позволяват да добавите клауза WHERE към вашия индекс - което води до по-компактен индекс. Освен това има допълнителното предимство да ви позволява да постигнете някои неща, които в миналото можеха да бъдат направени само чрез тригери.

  • Можете да поставите уникален филтриран индекс на OrderID &IsPrimary/ShippingPriority (WHERE IsPrimary =0).

Добавете коментар или нещо подобно, ако искате да обясня допълнително.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Заявка за сравняване на дати в SQL

  2. Как да изпълним .sql файл с помощта на powershell?

  3. Генериране на скрипт за подмножество от данни

  4. Как да изчакам 2 секунди?

  5. Node.js и Microsoft SQL Server