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

Проследяване:как да моделирам отстъпка за артикули в база данни?

Дизайнът на ProductPricing таблицата ни позволява никога да не се налага да изтриваме стари данни за цените (понякога ръководството иска отчет, базиран на тези данни). С това, което описахте по-горе, бихте започнали така (промених началната дата, само за да е лесно да се разбере, че да, това беше първоначалната цена, когато системата влезе в сила):

ProductPricing
   1   |    Jan 1, 1970, 00:00:00 |   Jan 1, 2038, 00:00:00  |   10$ |   10$

Сега да приемем, че давате отстъпка за ябълките си и сте искали да сте проактивни и да настроите системата, когато продажбата приключи:

ProductPricing
   1   |    Jan 1, 1970, 00:00:00 |  Dec 20, 2011, 00:00:00  |   10$ |   10$
   1   |   Dec 20, 2011, 00:00:01 |  Dec 26, 2011, 00:00:00  |  7.5$ |   10$
   1   |   Dec 26, 2011, 00:00:01 |   Jan 1, 2038, 00:00:00  |   10$ |   10$

Това, което направихме тук, беше:

  1. Актуализирайте съществуващия запис с времевата марка 2038, като промените endDateTimeStamp поле за отразяване на началото на продажбата
  2. Вмъкнете нов запис, за да дефинирате продажбата
  3. Вмъкнете друг нов запис, за да отразите отново нормалната цена

Без припокриващи се времеви печати, вие гарантирано ще получите един запис, когато зададете заявка в базата данни за вашата цена. По този начин,

SELECT p.Name, pp.price, pp.original_price
FROM Product p
INNER JOIN ProductPricing pp ON pp.productId = p.productId
WHERE NOW() BETWEEN pp.startDateTimeStamp AND pp.endDateTimeStamp

ще ви предостави списък с продукти с текущи цени.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какви са най-големите предимства от използването на INDEXES в mysql?

  2. ГРЕШКА 1148:Използваната команда не е разрешена с тази версия на MySQL

  3. PHP MYSQL извлича ТЕКСТ с нови редове

  4. MySQL Workbench

  5. Моля, инсталирайте mysql адаптер 'gem install activerecord-mysql-adapter'