数据库规范化表

时间:2014-12-16 19:06:08

标签: database database-design relational-database normalization database-normalization


让我们考虑一下我没有规范化的表格
1)仓库
  
   ID
   ITEM_ID
   剩余
   购买成本
   销售成本
   货币



我试图将其标准化,并获得了这些表格:



1)仓库表
  
   ID
   PRODUCT_ID
   残余的    cost_id



2)成本表

ID
   购买成本
   销售成本
   货币

这是否符合数据库常规表格?

提前多多谢谢!!!

2 个答案:

答案 0 :(得分:1)

这应该是一个评论,但它太冗长了。

没有足够的信息来提供答案 - 我们必须从上下文推断结构 - 并且上下文令人困惑。您的初始记录看起来像是要买卖的产品的描述 - 但您已将其命名为仓库 - 这是一个存储产品的地方。我不知道你的残余是什么意思。您是否有特定产品的多个购买成本?如果是这样,他们如何区分。类似的销售成本。如果涉及多个成本,为什么销售价格与购买成本挂钩?

答案 1 :(得分:0)

我不知道"残留"意味着在这种情况下。但只是忽略了......

我怀疑通过将成本分成一个单独的表来获得任何东西。假设我们有两种产品,"烤面包机型号14"和#34;男士衬衫款式X7"。两者都需要12美元。因此,您创建了12美元的成本记录,并将两个记录都指向此。然后你意识到你犯了一个错误,烤面包机真的花了13美元。所以你更新了成本记录。但那将会更新衬衫的成本,这几乎肯定是错误的。拥有单独的成本表意味着您每次创建库存记录时都会创建新的成本记录。什么都没有。

您列出的字段对我来说就像它们都属于一个表格一样。您还需要一个项目表,其中包含描述,制造商,产品规格等数据。

您的仓库表看起来确实是一个库存物品表,因为它列出了物品而不是仓库,但无论如何。我怀疑它还需要某种序列号,或者你如何将仓库中给定的物理项目链接到相应的记录?

如果按"销售成本"你的意思是当你卖掉它时你将向顾客收取的价格,我怀疑它属于仓库表。当顾客购买产品时,你告诉他,"我可以以20美元的价格卖给你在仓库里的40箱里的那个,或者以22美元的价格卖给你在箱子42里的那个。你想要哪个?"可能不是。我怀疑你收取相同的价格,无论客户获得哪个特定单位。从您购买第一个产品到购买第二个产品时,您必须向供应商支付的价格上涨的事实通常并不意味着您将以不同的价格向您的客户收取费用。您可以提高价格,但无论销售哪个单位,您都将获得一个价格。因此,销售价格在物料表中,而不是仓库表中。如果"销售成本"是另一回事,也许整个段落都无关紧要。