【发布时间】:2017-05-10 15:59:36
【问题描述】:
我试图想出一种最直接的方法来将物品的数量存储在数据库中。我正在创建一个数据库以与我正在开发的 Web 应用程序结合使用,以监控和记录借给人们的装备。所以,我已经想到了几种不同的方法,尽管我不确定它们是否易于维护到未来。
想法 1
我有一个gear 表,其中存储了装备类型(例如衬衫、裤子、帽子)以及尺寸等数据。然后每次取出装备时,它都会记录在gear_inventory 表中,存储详细信息,例如用户 ID、齿轮类型和布尔值,以表示是否返回和返回日期。然后为了跟踪数量,我们将在gear 表中为特定装备项目提供总数量和装备数量,这是手动更新的,当一个项目被取出或返回到正负值时触发第二个查询数量。
想法 2
将上述总数量链接到gear_inventory,作为该类型所有未退货商品的计数。
想法 3
有一个更新任务来更改表更新或插入时的这些数量。然后通过增加或减少给定查询的数量来做同样的事情。
想法 1 是最简单的,但不如其他想法可靠。想法 2 是最可靠的数量处理是输入数据库以确保。那么 Idea 3 就没有那么可靠了,因为它仍然依赖于计划任务来更新它。
那么,您将如何实施数量数量以确保它不会与记录的库存记录不同步?
编辑 1
更多信息 - 我试图实现的核心解决方案是有一种方法来存储或计算取出的物品数量,该数量可以与与该物品关联的总数进行比较。如下所示,它将以与保龄球馆的借/借鞋类似的方式发挥作用,但将记录用户。因此,借用物品时将插入一条记录,并且该记录将在归还时更新归还日期。项目的类型将在其自己的表中存储一般项目的详细信息,并且与记录的齿轮表具有一对多的关系。问题是,什么是存储/检索项目数量的完整证明/可靠方式。或者我是否过度考虑了这一点,一个简单的计数查询就足够了,不确定当一次又一次地执行时计数的密集程度。
【问题讨论】:
-
如果您能更多地谈论您要解决的问题而不是您提出的解决方案,这将更容易回答。似乎它将由一些直接的连接表处理,但很难弄清楚问题的参数。什么情况?你想用这些数据做什么?这像保龄球馆出租设备吗?
-
@Schwern 添加了更多信息,希望这就是您想要的。
-
我认为想法 2 是最好的,因为您不太可能使用大数据并且不需要统计表。您可以创建名为
gear_inventory_returned的附加表并将记录从gear_inventory移动到所述表中,这样会变得更小,更容易计数。
标签: sql database postgresql