gpt4 book ai didi

mysql - 具有 INT 的查找表优于 MySQL 记录中的小数?

转载 作者:行者123 更新时间:2023-12-01 00:49:38 24 4
gpt4 key购买 nike

尝试用尽可能少的单词进行总结:

我正在尝试创建一个系统来跟踪个人可以销售的各种产品以及他们在该特定项目上赚取的佣金百分比。我正在考虑为每个称为“级别”的产品创建引用整数,这将与他们在新查找表中的佣金百分比相关,而不是单个引用点。这是否有点矫枉过正,或者是否比为每条记录放置内联有任何好处?

我的直觉告诉我下面的设计 1 有优点,但我越想越不确定它们是什么。如果我需要用 Y 级更新所有销售产品 X 的个人,索引和替换最终使这两种方法变得简单和快速。通过使用设计 2,我可以动态地将任何“收入”更改为我可以为产品提出的任何百分比 (0.58988439),而我必须在设计 1 中创建此“级别”。

注意:产品与收入没有直接关系(一个销售代表可以赚取同一产品的 50%,另一个销售代表只能赚取 40%)。

引用范例:

设计 1 - 两个表

表 1

ID  |  seller_id   |   product_id   |   level
-----------------------------------------------
1 | 11111 | 123A | 2
2 | 11111 | 15J1 | 6
3 | 22222 | 123A | 3

表2

ID  | level |   earn
--------------------------
1 | 1 | .60
2 | 2 | .55
3 | 3 | .50
4 | 4 | .45
5 | 5 | .40
6 | 6 | .35

设计2——一张 table

ID  |  seller_id   |   product_id   |   earn
-----------------------------------------------
1 | 11111 | 123A | .55
2 | 11111 | 15J1 | .35
3 | 22222 | 123A | .45

(其中收入是基于小数的佣金百分比)

更新 1 - 2013 年 7 月 9 日

还应注意,销售代表的佣金水平随时可能发生变化。为此,我们计划简单地使用状态、开始和结束日期以及符合条件的佣金水平/收入的范围。例如,销售代表可能在 1 月 1 日至 2 月 1 日期间获得 2 级(或 55%)。这将在上面的两个设计中注明。然后,在查找销售代表在任何给定时间的收入水平或百分比时:从表中选择 * where (... agent information) AND start <= :date AND (end > :date or END IS NULL)

最佳答案

level 对业务有什么意义吗?

例如,我可以想象级别是管理单元的情况。也许某个季度出现了销售高峰,并且每个级别的费率都发生了变化。或者,是否有分级报告?在这些情况下,有一个单独的“级别”表是有意义的。

另一种情况是产品的不同价格有不同的水平——也许你卖得最多,佣金就越高。或者,佣金可能基于阈值,因此今年销量足够的人突然获得更高的佣金。

换句话说,可能有很多关于佣金的规则超出了原始百分比。在那种情况下,“规则”表将是数据模型的必要部分(“级别”是一种特定类型的规则)。

另一方面,如果您没有任何此类规则并且佣金始终基于人员和产品,那么将百分比存储在表中就很有意义。它简单易懂。它在访问百分比时也有很好的性能——这可能比更改它更频繁。

关于mysql - 具有 INT 的查找表优于 MySQL 记录中的小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17537411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com