CREATE TABLE customer( customer_id INT(11) PRIMARY KEY, customer_name VARCHAR(50), address VARCHAR(100) ); CREATE TABLE order( order_id INT(11) PRIMARY KEY, order_date DATE, customer_id INT(11), FOREIGN KEY (customer_id) REFERENCES customer(customer_id) ); CREATE TABLE order_detail( order_detail_id INT(11) PRIMARY KEY, order_id INT(11), product_name VARCHAR(50), quantity INT(11), FOREIGN KEY (order_id) REFERENCES order(order_id) );
在这个例子中,customer是强实体,order和order_detail都是弱实体。在order表中,customer_id作为一个外键,依赖于customer实体,同样地,在order_detail表中,order_id依赖于order实体。因此,这两个表无法独立存在,需要依赖于强实体customer和order才可以正确插入和查询数据。
弱实体的一个好处是可以节省存储空间,因为在创建弱实体表时只需要存储自己的属性和外键就可以了。但是,使用弱实体也存在一些缺点,比如说更新数据时需要同时更新其他相关的表,而且在查询数据时需要涉及多张表的连接操作,增加了复杂度。