将仓库定价费率纳入MySQL表

时间:2019-01-02 14:18:44

标签: mysql database database-design normalization

通过人工定价创建正确的数据库结构

我被分配了一个颇具挑战性的数据库设计,并认为有人也许可以给我一些帮助。我们目前有一个仓库进出货物系统,现在我们想使用这些数据来计算仓储费用。
该数据库已包含以下内容:货物输入日期,货物输出日期,寄售重量,件数,尺寸,货物说明,存储容器类型(如果适用)。数据保存在MySQL中,这可能不适用于下面的价目表结构。

这里是频段1,2,3,4的收费结构。根据客户的规模和重要性,我们大约有12个频段。所有其他频段都是以下内容的衍生产品:

乐队1 抵达我们的设施 每公斤0.04欧元+一般货物每批货物4.00欧元 杂志每公斤€0.07,不收取任何存储费用 5天后的储存费用 每个完整托盘最大尺寸120x100x160cm€4.00(标准仓库木质托盘) 散装货物或超限货物每立方米6.50欧元。 特定集装箱货运 仅20FT托盘-€50.00 仅40FT托盘-€20.00

乐队2 每公斤0.04最低收费 6天后的储存费用 每立方米€2.50 货柜 仅20FT托盘-€50.00 仅40FT托盘-€20.00

乐队3 每公斤0.03欧元+ 2000公斤以内每批货物3.00欧元 每公斤€0.02 +超过2000kg的运费为€2.00 5天后的储存费用 每个托盘最大尺寸120x100x160€4.00 每公斤散货0.04欧元

乐队4 每个托盘€5.00 4天后的储存费用 每个托盘最大尺寸120x100x160€5.00

到目前为止,我的想法是在货物到达时收集收费范围,然后尝试将价格调整到具有某种标准化(例如集装箱类型)的表格中。

任何人都有过这种将手册转换为系统的经验吗?

1 个答案:

答案 0 :(得分:0)

计算费用的算法可能在SQL中太乱了。因此,让我们从不同的角度来探讨您的问题。

  1. 以您的客户端语言(Java / PHP / VB / ...)构建算法。
  2. 在执行步骤1时,请考虑需要哪些数据-也许是由两列组成的“天”和“欧元”数组?也许涉及“公斤”?也许有多种模式-天和/或公斤?
  3. 构建用于存储这些数组的一个或多个表。
  4. 决定如何指示公斤无关紧要-也许在公斤表中省去任何行?还是提供尺寸/重量的额外列?

我的观点是算法需要驱动任务。数据库只是一个持久性存储。

这是另一种方法。不用拥有几天,几千等的列,只需拥有一个需要任何因素的JSON字符串即可。在客户端代码中,解码JSON,然后使用合适的IF语句对公斤(如果存在),ELSE ...等进行操作。

同样,数据库只是一个持久性存储;客户正在通过方便的方式来驱动格式。

在任一实现中,都会有一列涉及的项目类型以及BandSELECT将具有ORDER BY Band。注意,将没有12的概念;任何数量的都可以实现

性能?获取所有〜12行并逐步执行-这应该不是性能问题。如果您有一千个乐队,您可能会可能稍有延迟。