class-图的数据库实现

Database implementation of a class-diagram

我有以下型号:

我在 Oracle 数据库中创建了每个 table,但我不知道如何实现 table 之间的关系。你能帮忙吗?

有很多可能性,但这里有一些精选的建议:

  • 一对多关联(或聚合或组合)通常是通过将“一”的主键作为外键出现在“多”中来实现的。这种技术有时称为 Foreign key mapping
    示例:Address table 的主键将是 Fire table.
  • 的附加外键列
  • 多对多关联通常用关联table实现,有两个外键对应关联class的主键。这有时称为 association table mapping.
    示例:您有一个额外的关联 table PostFire 有两个外键列,一个对应Post的主键,一个对应Fire的主键。
  • 关联 class 是通过关联 table 实现的(见上文)。
    示例:对于 table 实现 Scale,您' d 添加两个外键列,一个主键为Client,一个主键为Fire.
  • 继承有很多种实现方式。如果您已经创建了 4 tables,那么诀窍就是让“父”的主键显示为“子”的外键,并对该值具有唯一约束。另一个更简单的变体可能是将父项的主键重用为子项的主键。这两种技术都被称为class table inheritance,因为每个class对应一个table。
    示例:添加一个外键列到Fireman对应User的主键。

P.S:几点,与你的问题没有直接关系:

  • 关联名称 class 与关联名称 confirm 之间存在 UML 不一致。一个协会class同时是协会,class和洞窟只有一个名字

  • 永远不要在数据库中存储密码 TABLE。 Storing a hash code of the password 是一种更安全的方法。