1

我正在尝试找出在我的数据库中表示“特价商品”概念的最佳方式——这些与“待售产品”有关。每个特价商品都会提供某种折扣,但它们会有所不同,其中一种只是简单的降价,而另一些则是诸如“购买 x 获得 y 半价”或“类别 x 30% 折扣”之类的东西。我预计不会有超过 10 种特价商品类型……但需求会发生变化,我需要确保在需要时能够处理更多。

我试图想出一种简单的方法来在我的数据库中表示这些但是我看到它的方式我要么必须为每个特殊创建一个表,要么我将不得不有一个包含大量列的特殊表其中 90% 的值将为 NULL。我打算有一个 SpecialType 表,它将按类型将所有特价组合在一起,例如“折扣”、“购买 x 获得 y 免费”,这将用于确定相应应用层中的业务逻辑。此外,我想我可以沿着每个特殊类型拥有 1 个表的路径,然后缓存可以定期更新的结果(基本上缓存每个产品的可渲染输出),比如每 5 分钟一次,

对于如何以最整洁的方式处理这种情况,同时保持我的数据库正常化,我将不胜感激。

4

1 回答 1

0

由于添加特殊类型需要更改代码,并且您无法合理地预期所有可能的特殊类型,因此我很乐意为每种特殊类型创建一个单独的表,以及某种主表,其中包含特殊类型、名称、描述等...

使用包含许多不适用字段的单个表往往会成为内部平台,而这几乎总是矫枉过正。

顺便说一句,我一生中最不愉快的意外之一是,当我发现一项新的促销活动需要从电视广告中更改代码/数据库时。

于 2011-03-27T00:29:23.317 回答