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

Най-добрият начин за съхраняване на тримесечие и година в SQL Server?

Ако трябва да използвате отделни година и тримесечие вместо дата (тъй като изглежда, че имате специфични изисквания за отчитане), бих избрал tinyint за четвърт и smallint за година и ги съхранявайте в PAYMENT самата таблица.

Не бих го съхранявал в друга таблица. Това е лошо, тъй като:

  • Трябва да сте сигурни, че сте произвели достатъчно години/тримесечия
  • Трябва да се присъедините и да използвате външен ключ

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

ЗАЩО

Нека си представим, че трябва да получите

В този случай ще ви трябва покриващ индекс на всички елементи и пак не помага, тъй като заявката ви е за конкретно тримесечие, а не за тримесечна година. Наличието на данните в таблицата обаче ще помогне за по-лек план за изпълнение.



  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 Server

  2. За процедурата или функцията cdc.fn_cdc_get_all_changes_ са предоставени недостатъчен брой аргументи

  3. Как мога да разбера дали вече има достъп до таблица с база данни? Искате нещо като тригер SELECT

  4. Как да активирате всички ограничения за проверка и външни ключове в база данни в SQL Server (примери за T-SQL)

  5. Намерете стойност навсякъде в база данни