通过人工定价创建正确的数据库结构
我被分配了一个颇具挑战性的数据库设计,并认为有人也许可以给我一些帮助。我们目前有一个仓库进出货物系统,现在我们想使用这些数据来计算仓储费用。
该数据库已包含以下内容:货物输入日期,货物输出日期,寄售重量,件数,尺寸,货物说明,存储容器类型(如果适用)。数据保存在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
到目前为止,我的想法是在货物到达时收集收费范围,然后尝试将价格调整到具有某种标准化(例如集装箱类型)的表格中。
任何人都有过这种将手册转换为系统的经验吗?
答案 0 :(得分:0)
计算费用的算法可能在SQL中太乱了。因此,让我们从不同的角度来探讨您的问题。
我的观点是算法需要驱动任务。数据库只是一个持久性存储。
这是另一种方法。不用拥有几天,几千等的列,只需拥有一个需要任何因素的JSON字符串即可。在客户端代码中,解码JSON,然后使用合适的IF语句对公斤(如果存在),ELSE ...等进行操作。
同样,数据库只是一个持久性存储;客户正在通过方便的方式来驱动格式。
在任一实现中,都会有一列涉及的项目类型以及Band
。 SELECT
将具有ORDER BY Band
。注意,将没有12的概念;任何数量的都可以实现。
性能?获取所有〜12行并逐步执行-这应该不是性能问题。如果您有一千个乐队,您可能会可能稍有延迟。