实体关系模型

Entity-relationship model

我正在创建一个简单的实体关系模型。在这里,我有一只或多只动物可以获得一项或多项服务。 我的问题是连接类型 "get" 将具有哪些属性。我在想它会得到 animals 和 svervice 的独特属性 "animal-ID" 和 "service-ID",那将是 "get".

中的外键

典型的多对多关系类似于 table,其中两列引用两个实体。在您的情况下是(实际语法取决于 dbms):

CREATE TABLE Get (
  animal_id INT NOT NULL,
  service_id INT NOT NULL,
  FOREIGN KEY animal_id REFERENCES animal (animal_id),
  FOREIGN KEY service_id REFERENCES service (service_id)
)

有时通过某些 link 属性扩展 linking table 是有意义的。喜欢:

CREATE TABLE Get (
  animal_id INT NOT NULL,
  service_id INT NOT NULL,
  service_paid BOOLEAN,
  provided_date DATE,
  FOREIGN KEY animal_id REFERENCES animal (animal_id),
  FOREIGN KEY service_id REFERENCES service (service_id)
)

但一般来说就是两个外键。

这将用于 link 最初在 M:N 关系中相关的表