在MySQL数据库中记录主值?

本在加利福尼亚

我试图找出一种严格使用MySQL处理这种情况的好方法。(使用生成的列,视图,逻辑语句,过程等)

在示例中,我对此进行了简化。假设我有一个表,用于存储特定工厂中特定年份特定产品的生产成本信息。

其中一些费用是针对产品的。(塑料,成型成本,包装,人工等)

其中一些费用是相当通用的;我可能想为它们指定一个特定的值,但是对于大多数情况下的大多数情况,我只想让他们引用当年工厂的特定值。我将这些称为“主”值。(例如间接费用,例如利息费用,电费,热费,财产税,行政劳动等)

然后,如果我更新我的主值,则这些值将自动进行调整;他们每年和工厂可能会有所不同。(所以我不能只使用默认值。)

所以我的专栏可能是:

table_example

这是如何定义的逻辑:

$MValue(var) = var WHERE product_id = M (Master) AND year = year AND factory_id = factory_id;

然后,基本上,如果我想对该产品使用唯一成本,则可以将成本金额输入字段,但是如果我希望其使用主值(如M所示,显示在第4行),则可以插入$ MValue(column_id)在字段中。

关于如何使用MySQL完成此工作的任何想法?

我应该补充一点,我已经在这些字段上使用了生成(计算)的列和视图,因此,为什么要寻找严格的MySQL解决方案。

比尔·卡温

我建议在产品行中将派生成本存储为NULL,然后定义一个连接到主行的视图。

CREATE VIEW finalcosts AS
  SELECT p.cost_id, p.product_id, p.factory_id, p.plastic_cost, p.molding_cost,
    COALESCE(p.interest_cost, m.interest_cost) AS interest_cost,
    COALESCE(p.tax_cost, m.tax_cost) AS tax_cost
  FROM costs AS p
  JOIN costs AS m ON p.year = m.year and m.product_id = 'M (Master)'

无法使用默认列或生成的列从另一行检索数据。这些表达式只能引用同一行中的值。

PS:关于“主要”价值的术语,我已经习惯了“直接成本”和“间接成本”这两个术语。直接成本是很容易归因于产品的单位成本的那些,间接成本就像您的主成本,它们被归因于整个业务,并且通常不按生产的单位进行扩展。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章