Mysql 在';上保存信息的最佳方式是什么;库存水平';对于数据库中的产品?

Mysql 在';上保存信息的最佳方式是什么;库存水平';对于数据库中的产品?,mysql,key,normalization,Mysql,Key,Normalization,我的数据库名为“购物”,它包含以下表格: products (product_id, product_name, price, category_id) product_category (category_id, cagtegory_name) customers (customer_id, username, pass, fname, lname, email) orders (order_id, order_date, product_id, customer_id) 现在我想考虑对每种

我的数据库名为“购物”,它包含以下表格:

products (product_id, product_name, price, category_id)
product_category (category_id, cagtegory_name)
customers (customer_id, username, pass, fname, lname, email)
orders (order_id, order_date, product_id, customer_id)
现在我想考虑对每种产品的库存水平进行记录。 i、 e 产品标识=1 产品名称=MICROSOFT限量版Gears 5 Xbox One X、Tekken 7和Project Cars 2捆绑包 价格=449.99 类别id=2
库存id=1(参考产品库存表中的库存id):-/

我考虑过三种在产品上存储“库存信息”的方法

方法a)在products表中添加一个名为“stock_level”的新列,该列简单有效,因为在这种情况下,stock level完全依赖于它的主键

方法b)创建一个名为“product_stock”的新表,其中包含“stock_id和stock_level”列

这里的逻辑出现了混乱

出于某种原因,在使用方法b之后,我将product_stock table(stock_id)的主键也设置为外键,并将products表引用为:

product_stock.stock_id = products.product_id
i、 e

等等

我考虑的第三种方法是将stock_id键仅作为主键,并断开与Products表的链接。然后在products中,创建一个名为stock_id的列,其中的FK引用product_stock表中的stock_id

三种方法中哪一种似乎是最好的?出于某种原因,我很遗憾删除了列和关系设置,这给了我方法b中讨论的行为

我喜欢方法b的原因是,如果将鼠标悬停在product_stock中的每个stock_id键上,您可以立即在products表(phpmyadmin)中看到它与什么产品相关

对这件事有什么想法

参考问题并阅读

不需要,全部在phpmyadmin上,在本例中不需要


参考问题。

正如您所解释的,每个产品只有一个库存价值。最简单的方法是将该信息直接存储在products表中:选项a)在您的问题中


例如,如果您有多家门店,并且需要跟踪每家门店中每种产品的库存水平,则使用单独的表格将非常有用。然后,您将创建一个单独的表,其中一列用于存储产品id,另一列用于存储商店id,第三列用于存储此特定库存中此特定产品的级别。

LOL@product\u stock table具有MYISAM引擎…我在页面中搜索了“MYISAM”,但它只出现在您的注释中。
product_stock.stock_id 1 REFERENCES BACK TO products.product_id 1
product_stock.stock_id 2 REFERENCES BACK TO products.product_id 2