mysql - 数据库中的库存架构

标签 mysql database-design architecture inventory

这不是一个与特定语言相关的问题,而是一个处理库存的架构的正确方法的问题。

考虑以下存储软件的结构:

platforms (platformID*, platformName)
titles (titleID*, titleName)

以下是独特产品的连接表

products (platformID*, titleID*, releaseDate, notes)

下面是我想跟踪我的库存的表格

inventory (platformID*, titleID*, quantityAvailable)

在我看到的示例中,其他人创建了一个表,其中软件的每个唯一副本都存储在单独的行中,如下所示:

software(softwareID*, softwareTitle)
inventory(inventoryID*, softwareID*)

我想知道哪种方法更好?我是否应该为每个唯一的软件副本创建一个 inventoryID 并创建一行:

inventory(inventoryID*, platformID*(fk), titleID*(fk))

或者使用存储数量的表,如下所示:

inventory(platformID*(fk), titleID*(fk), quantityAvailable)

最佳答案

为每件库存设置唯一行的优点是,以后如果您想跟踪诸如停留的库存、预购的库存、已售出但仍可返回的库存等信息。

我认为这种方法没有任何真正的缺点,除了可能需要更多的工作,如果不需要这些东西,可能不会有返回。

关于mysql - 数据库中的库存架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2296485/

相关文章:

c# - NServiceBus - 基于内容的路由和审计 - 我的方法可以吗?

c++ - 如何将现有的 C++ 代码移植到 C++11

mysql - 选择每个用户最近日期的行

database-design - 选择SQL/NoSQL应该考虑什么?

mysql - 多对多关系的单个 SQL 查询

caching - 内存模型-/缓存一致性协议(protocol) : How TSO goes together with MESIF

php - 将从 XML 文件中提取的数据插入到 MySQL 表中

mysql - System.DateTime 类型不是受支持的类型。更改为使用 System.DateTimeOffset

php - 如何获取未在逗号分隔字符串的第一个或最后一个索引但在 MySQL 中的字符串中间索引的值

SQL Server 数据库设计与外键混淆