引用维基百科,一个弱实体"必须使用外键与其属性一起创建主键。"和"存在依赖于另一个实体"。 但是,如果一个实体依赖于另一个实体,而没有(部分)PK是FK吗?
在经典的Order - OrderLine - Product关系中,OrderLine是一个弱实体,因为它的PK由来自其他实体的两个FK组成,比如orderID和productID。
但订单实体怎么样?让我们说它看起来像这样:
Order( orderID - not null, Primary key,
costumerID - not null, Foreign key,
date,
status,
...)
很清楚,没有客户(costumerID)就不能存在订单,但与此同时,costumerID不是主键的一部分。
答案 0 :(得分:2)
实体可以依赖于(与之关系)另一个实体而不是弱实体。这称为总参与,并在ER图中以双重角色线表示。
在您的示例中,OrderLine
如果其PK由orderID
组成且具有区别属性,则为line_number
将是弱实体。 Order
。如果它的PK由两个FK组成,我们称之为关系。
您的Customer
示例显示了与(orderID,customerID)
的关系的完全参与(该关系由两个实体键列orderID
表示)。它不是一个弱实体,因为它有自己的标识符,即Order
。如果我们省略NOT NULL约束,Customer
将部分参与其与String query = "INSERT INTO Registration (Username , Password ) VALUES (? ,?)";
java.sql.PreparedStatement pst = connection.prepareStatement(query);
pst.setString(1,textField.getText());
pst.setString(2,textField_1.getText());
int rs = pst.executeUpdate(query);
的关系。
另请参阅我对is optionality (mandatory, optional) and participation (total, partial) are same?
的回答