代码之家  ›  专栏  ›  技术社区  ›  devoured elysium

帮助建模ER图

  •  2
  • devoured elysium  · 技术社区  · 14 年前

    我试图在一个ER图中模拟以下两个句子:

    < Buff行情>

    每家公司都有一套坦克。它是 也知道每个油箱如何加满 每天的每一次。

    < /块引用>

    不知道一天中是否有特定时间有日志。一天一次,两次,每小时一次,也许有些日子你没有任何信息,等等。

    这是我目前的尝试:

    (我忘了将一个名为“当前加载”的属性放入坦克/日期关联中。)

    尽管出于某种原因,我不喜欢它(我想我不喜欢 日期 实体!)你们一般是如何模拟这种情况的?

    我想我可以用一个 tankloads entity,在关联上有一个属性“load”和另一个属性“date”。

    谢谢

    PS:对不起,这张蹩脚的直径图:(

    每家公司都有一套坦克。它是 也知道每个油箱如何加满 这是一天中的每一次。

    不知道一天中是否有特定时间有日志。它可以是一天一次,两次,每小时一次,也许有些天你没有任何信息,等等。

    这是我目前的尝试: alt text

    (我忘记将一个名为“当前加载”的属性放入Tanks/Date关联中)

    尽管出于某种原因我不喜欢它(我想我不喜欢 Dates 实体!)你们一般是如何模拟这种情况的?

    我想我可以换一个 TankLoads 实体,其属性为“加载”,关联上的另一个属性为“日期”。

    谢谢

    PS:对不起,粗制滥造的直径图:(

    3 回复  |  直到 14 年前
        1
  •  0
  •   Pelle    14 年前

    嗯,我会稍微改变一下。把所有的日期/时间放在一个单独的表中(我现在称它为日期,但你也可以称它为时间或时间戳,等等),并且用坦克很多对很多。(我使用了表填充级别。)

    水箱的液位存储在FillLevels表中。

    公司:
    - […]

    Tanks:
    -公司编号:int
    - […]

    FillLevels:
    - TangkyID: int
    -TimeSyID:int
    - […]

    日期:
    - […]

    我很抱歉没有一个闪亮的图表给你,但我知道这有点道理。

    或者,您可以在FillLevels表中创建一个日期时间字段,而不是使用日期表,这取决于您打算如何查询数据库。

        2
  •  2
  •   Walter Mitty    14 年前

    数据建模和数据库设计并不完全相同,即使人们经常使用ER图来总结数据库模式。

    日期或由日期和时间组成的时间戳没有“虚幻”的意思。它们是抽象的事实并不重要。银行账户也是抽象的。

    不管你是要有一个日期表还是时间戳,这都是另一回事。在实践中,我发现有一个表可以对报告数据库中的每个日期或每个工作进行编目非常有帮助。有了适当的属性,即使企业有自己古怪的财政日历,也可以轻松地生成每周、每月、季度或每年的报告。有些属性可能与内置在SQL中的函数是冗余的,但即使这样,这也是一个相对不重要的设计决策。

        3
  •  1
  •   Damir Sudarevic    14 年前