我正在尝试找出在我的数据库中表示“特价商品”概念的最佳方式——这些与“待售产品”有关。每个特价商品都会提供某种折扣,但它们会有所不同,其中一种只是简单的降价,而另一些则是诸如“购买 x 获得 y 半价”或“类别 x 30% 折扣”之类的东西。我预计不会有超过 10 种特价商品类型……但需求会发生变化,我需要确保在需要时能够处理更多。
我试图想出一种简单的方法来在我的数据库中表示这些但是我看到它的方式我要么必须为每个特殊创建一个表,要么我将不得不有一个包含大量列的特殊表其中 90% 的值将为 NULL。我打算有一个 SpecialType 表,它将按类型将所有特价组合在一起,例如“折扣”、“购买 x 获得 y 免费”,这将用于确定相应应用层中的业务逻辑。此外,我想我可以沿着每个特殊类型拥有 1 个表的路径,然后缓存可以定期更新的结果(基本上缓存每个产品的可渲染输出),比如每 5 分钟一次,
对于如何以最整洁的方式处理这种情况,同时保持我的数据库正常化,我将不胜感激。