库存数据库设计

Jes*_*ger 1 database-design

我找到了几个库存数据库的例子.但我正在寻找一些不同的东西.我正在使用SQL.

我需要跟踪工具.员工可以检查工具,并减少该工具的库存,并将该事务记录在(checked_out)表中.容易远.

当员工返回工具或工具时,员工可以选择.他可以将工具退回库存.还算容易.或者他可以将工具打破并丢弃,换句话说,将其记录到垃圾桌.或者他可以将工具放入resharpen bin并将其记录到resharpen表中.这是我感到困惑的地方.

Har*_*ode 7

听起来你需要在库存表上有一个状态.例如,任意工具的记录可以具有状态字段,该字段是"状态"表中的外键.Statuses表可能如下所示:

ID     Description
-----------------------
1      Available
2      In Use
3      Broken
Run Code Online (Sandbox Code Playgroud)

...等

您的库存表可能如下所示:

id     status_id     description
-------------------------------------
1       2            Hammer
2       1            Hammer
3       3            Hammer
4       1            Saw
5       3            Saw
Run Code Online (Sandbox Code Playgroud)

然后,在计算库存时,仅显示工具状态为"1"的记录.您还可以运行管理查询以显示有多少工具是"已损坏".计划在正确计算损坏的工具后最终删除这些记录,或者将它们保留用于历史数据目的.

不惜一切代价,避免为数据库中任何实体的处置创建单独的表.使用"flag"字段(即status_id),这样您就可以向应用程序添加新状态,而无需无限添加新表.