如何对数据库中的商品进行折扣建模?

2023-12-29

我正在建立一个电子商务网站,并希望在有限的时间内为某些商品提供折扣。

我的产品表(MySQL)如下所示:



Product
    - productId
    - Name
    - Weight
    - Price (price as on the cover of the item)
  

我应该再做一张交易表吗:



Deals
 - dealID
 - productID (Foreign Key)
 - discount (fractional value: percentage)
 - description
  

对于检索项目:

  • q1:查找products中productID=deals表中所有productID的所有产品
  • q2:使用交易表中的折扣更新价格
  • q3:退回所有产品

有一个更好的方法吗 ?另外,如果交易仅在有限时间内存在,我该如何处理?

编辑: 我想显示我们为每种产品提供多少折扣。因此,我需要每个产品有两个值:原始价格和给定持续时间内的折扣价格。

我发布了 crontab 提出的解决方案的后续内容here https://stackoverflow.com/q/8578795/280924


您可以考虑添加开始时间戳和结束时间戳到您的Deals桌子。这样,您可以检查以确保当前日期位于交易的开始日期和结束日期之间。

Your Deals表并不真正需要dealID- 它可以用键控productID以及折扣的开始日期。另外,根据给定商品的价格可能有多高,请记住让您的discount字段足够精确(例如DECIMAL 12,8).

如果是我的话,我其实会留下价格off of the Product表并创建一个ProductPricing表而不是创建一个Deals桌子。那ProductPricing表将包括productID和一个开始时间戳作为关键字段,然后还有一个结束时间戳来指示价格何时发生变化。当然,还有商品的价格。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何对数据库中的商品进行折扣建模? 的相关文章

  • 显示过去 7 天 PHP 的结果

    我想做的是显示过去 30 天的文章 但我现有的代码不断给我一个 mysql fetch assoc 错误 然后追溯到我的查询 这是代码 sql mysql query SELECT FROM table WHERE DATE datetim
  • 在 MySQL 中分割逗号分隔值

    我正在尝试将字符串中以逗号分隔的 值拆分为多列 样本数据 COL1 COL2 COL3 000002 000003 000042 09 31 51 007 004 007 预期输出 Pno Cno Sno 000002 09 007 000
  • php 崩溃后 mysql 表被锁定

    我有一个 MySQL DB 和一个 innoDB 表 我有一个 php 页面 用于连接 锁定表 进行一些更新 然后解锁表 PHP 页面通过 wamp 与 apache 一起提供 php页面将文件上传到数据库 我决定通过上传一个大小大于分配给
  • 如何使用实体框架设置连接字符串

    我将 EF6 与 MySQL 结合使用 并有一个用于多个数据库的模型 我希望能够在我的表单中设置连接设置 如何以编程方式设置模型的连接字符串 你应该使用EntityConnectionFactory这就是您所需要的 public strin
  • 在 MySQL 中将行转置为列

    如何在 MySQL 查询中将行转换为列 您可以将行变成a列与GROUP CONCAT 但您无法以任何自动方式转置整个结果集 您可以编写手动生成每一列的查询 也可以在应用程序中执行此操作 以下是有关编写复杂查询来模拟转置的教程 http ww
  • PDO::commit() 成功或失败

    The PHP PDO 提交 http www php net manual en pdo commit php文档指出该方法成功时返回 TRUE 失败时返回 FALSE 这是指beginTransaction 和commit 之间的语句执
  • 如何将 php Web 应用程序转换为桌面应用程序并保留数据库 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们有一个用 PHP 开发的 Web 应用程序 但大多数客户并没有一直连接到互联网 那么 有没有办法将应用程序转换为桌面应用程序 以便
  • 使用MySQL计算单个表中借方和贷方的余额

    下面的 MySQL 表包含带有关联金额的借方或贷方 操作 如何选择具有非零 余额 的所有 CLIENT ID 我尝试将表连接到自身以计算所有借方和贷方总额 但有些东西无法正常工作 CLIENT ID ACTION TYPE ACTION A
  • Clojure MySQL 语法错误异常(“[...] 靠近 '???????????????' [...]”)

    除了建立连接之外 我在使用 clojure contrib sql 做任何事情时都遇到困难 我有一个 mysqld 在 localhost 3306 上运行 数据库名为clj db 用户 clj user localhost 和密码 clj
  • 如何使用 PHP 从 MySQL 检索特定值?

    好吧 我已经厌倦了 过去一周我花了大部分空闲时间试图解决这个问题 我知道 SQL 中的查询已更改 但我无法弄清楚 我能找到的所有其他帖子似乎都已经过时了 如果有人能帮助我 我将非常感激 我想做的就是使用手动输入数据库的唯一 密码 来检索行的
  • 多租户 Rails 应用:不同技术的优缺点是什么?

    我最初是为一位客户编写 Ruby on Rails 应用程序的 现在 我正在更改它 以便它可以用于不同的客户 我的最终目标是某些用户 不是我 可以单击按钮并创建一个新项目 然后生成所有必要的更改 新架构 新表 代码处理 无需任何人需要我编辑
  • INNER JOIN 可用作 SELECT,但不能用作 DELETE [重复]

    这个问题在这里已经有答案了 为什么这个有语法错误 DELETE FROM print mailing request pmr INNER JOIN person p ON p id pmr person AND p email LIKE T
  • 如何在数据库中保存未来(!)日期

    这个问题专门涉及未来的日期和时间 对于过去的值 UTC 无疑是首选 我想知道是否有人对拯救生命的 最佳 方法有建议futureMySQL 数据库中的日期和时间 或者就此而言一般来说 特别是在该列可以保存不同时区时间的情况下 考虑到时区规则可
  • 项目链接在 Wamp 服务器上不起作用

    我正在另一台计算机上安装 Wamp 服务器来运行中型数据库和 UI 我已成功阻止 IIS 并将服务器路由到 Localhost 8080 但是每当我尝试从 localhost 主页访问我的项目时 在 www 文件中 我被重定向到页面未找到错
  • ORDER BY 之后的 GROUP BY

    我需要去做GROUP BY after ORDER BY 我不明白为什么 MySQL 不支持这一点 这是我的代码 SELECT pages id contents id language ORDER BY FIND IN SET langu
  • MYSql 前 10 名及其他总计

    我的查询运行良好 但我只需要前 10 个供应商 然后我需要将所有剩余的总计放在 所有其他 行中 如果没有单独的查询 我该如何做到这一点LIMIT 10 18446744073709551615 SELECT VENDOR fullname
  • MySQL 中非空值的计数和分组

    我需要计算按特定 ID 分组的非空 我的意思是至少包含 1 个字符的字符串 行 例如 我的数据可能如下所示 form id mapping 1 value 1 1 1 value 2 2 2 NULL 3 value 3 我想计算每个表单的
  • 如何处理长期运行系统中旧的、过时的数据库数据?

    程序员有哪些可能性来处理很少使用但不能简单删除的数据 因为至少报告仍然需要它 我想到的一些例子 大学老年时期停止的资助类型 未使用的货币 例如意大利里拉 消失国家的名称 例如奥匈帝国 苏联 一些部分解决方案是活动标志 活动周期 可视化优先级
  • MySQL 和 MariaDB 数据库有什么区别?

    我已经使用 XAMPP 很长时间了 很惊讶 XAMPP 已经从 MySQL 切换到了 MariaDB https www apachefriends org index html https www apachefriends org in
  • 选择查询不适用于使用Parameters.AddWithValue 的参数

    C 中的以下查询不起作用 但我看不出问题所在 string Getquery select from user tbl where emp id emp id and birthdate birthdate cmdR Parameters

随机推荐

  • 从 App Engine 使用 GCS json-api 时出现“超出配额”

    我在 App Engine 上使用 Go 大多数情况下 我使用文件 API http godoc org code google com p appengine go appengine file访问 GCS 效果很好 除了删除不起作用 h
  • WPF 不活动和活动

    我正在尝试处理 WPF 应用程序中的用户不活动和活动 以淡入淡出一些内容 经过大量研究后 我决定采用 Hans Passant 发布的 至少在我看来 非常优雅的解决方案here https stackoverflow com questio
  • 为什么我打印的数组末尾有一个 1?

    这是一个超级简单的数组打印 但是当我使用 print r 时我已经到了最后 然后我得到 Array 0 gt 1 1 gt 2 2 gt 3 3 gt 4 1 print r http php net print r已经打印了数组 不需要e
  • AVAudioPlayerNode.scheduleFile() 的completionHandler 调用得太早

    我正在尝试在 iOS 8 中使用新的 AVAudioEngine 看起来player scheduleFile 的completionHandler被调用before声音文件已播放完毕 我正在使用长度为 5 秒的声音文件 并且println
  • 删除Kafka 0.8.1.1中的主题

    我需要删除主题test在 Apache Kafka 0 8 1 1 中 正如表中所表达的文档在这里 https kafka apache org documentation html basic ops modify topic 我已经执行
  • Android smack 库订阅(不显示入站或出站通知)

    我正在开发一个 Android 聊天应用程序 其中我使用 smack 库进行即时消息传递 一切工作正常 但最大的问题在于订阅 如何向其他用户发送订阅通知 这是我发送订阅请求的代码 public void run runOnUiThread
  • Lotus Domino Designer 中的源代码控制

    多年来 我们一直在一个大型项目中使用 Domino 但没有任何真正的源代码控制 除了服务器备份 因此 当我注意到最新的 Designer 8 5 3 具有与 SVN 集成的潜力时 我感到非常高兴 我无法仅通过以下方式让 SVN 工作原始说明
  • $watch'ing Angular 指令中的数据更改

    我怎样才能触发 watch当操作内部数据 例如 插入或删除数据 时 在 Angular 指令中使用变量 但不为该变量分配新对象 我当前正在从 JSON 文件加载一个简单的数据集 我的 Angular 控制器执行此操作 并定义了一些函数 Ap
  • 将记录从android中的hashmap保存到数据库中

    我只是想寻求帮助 我在列表视图中填充了一个哈希图 下面的代码是我的哈希图的代码 mylist new ArrayList
  • 使用Shapeless通过HList将Future的tuple转换为tuple的Future

    有没有一种简单的方法将 Future A Future B Future C Future N 类型的元组转换为 Future A B C N 这假设元组中元素的数量未定义 我尝试将元组转换为 HList 并尝试了类似的 FoldLeft
  • 这些图中的箭头图例(MVC - MVP - MVVM)是什么?

    我尝试理解 MVC MVP 和 MVVM 模式之间的主要区别 我找到了这 3 个图表 但我不确定是否理解它们 你能帮我解释一下虚线和实线的图例是什么吗 MVC 来自维基百科的定义 来自 Microsoft MSDN 网站的 MVP 来自微软
  • Python tkinter treeview获取/返回所选项目的父名称

    我试图在选择事件时返回 tkinter 树视图选择的父项 因此 如果选择更改为 子项 我希望它打印 父项 下面的工作示例 当前它打印选择项 而不是父项选择 try import tkinter as tk import tkinter tt
  • UML 序列图中的构造函数

    下面的序列图和构造函数 表示为创建对象 的含义是什么 消息的名称 Class B 是错误的 它应该是 create 这就是让你困惑的地方吗
  • 通过“/”在多行中一次拆分数千列,对新行中的值进行排序并添加“NA”值

    我想分割一个包含数千列的数据框 数据框如下所示 sample data of four columns sample lt read table stdin header TRUE sep POS v1 v2 v3 v4 152 0 0 1
  • 如何访问 .URL 文件中的 URL 和书签标题?

    我正在使用 NET 2 0 Visual Studio 2005 C 下面的代码从包含书签的 url 文件的目录中获取 IE 收藏夹 书签 的文件名 Example 用户 收藏夹 blah url 但我真正想要的是该文件内的书签 URL 当
  • 使文档可通过 java/servlet 下载

    我需要知道java servlet中是否有一种方法可以使存储在数据库中的文档 doc pdf 可供用户按请求的方式下载 请参见下文 例如 有一个网页和其中文档的链接 现在是这样完成的 如果用户单击该链接 则会打开一个新的空白窗口 并显示下载
  • MVC 最佳实践

    我是 MVC 新手 我正在使用 codeigniter 想知道应该在哪里放置 cut description 函数 我的模型检索事件列表 包括其描述 如果描述太长 我需要在前 n 个单词之后将其剪掉 并添加一个 阅读更多 链接 这样视图就不
  • 如何在 lldb 中打印 Vec

    我想使用 ascii 格式逐字节打印 vec let slice1 b abcdefg 我可以像这样打印结构 lldb p slice1 u8 slice1 data ptr 0x00007ff9abe00020 length 7 当我尝试
  • Java 线程等待锁定未(明显)锁定的对象

    通常 当我要求进行线程转储时 很容易解释性能不佳的系统的症状 即通常情况下 我可以看到许多线程显然正在等待已被另一个线程获取但未释放的监视器 在本例中 我有很多线程在等待监视器 0x965ad100 但似乎没有一个线程首先拥有该监视器 可以
  • 如何对数据库中的商品进行折扣建模?

    我正在建立一个电子商务网站 并希望在有限的时间内为某些商品提供折扣 我的产品表 MySQL 如下所示 Product productId Name Weight Price price as on the cover of the item