在使用表关系时。实线和虚线的使用有什么区别?
例如TABLE: MESSAGES/表:USERS
用户有0条或多条消息。
实线还是虚线?
如注释所述,虚线表示非识别关系。
来自mySQL文档的定义:标识关系是子表在没有父表的情况下不能唯一标识的关系。这通常在创建中间表以解析多对多的关系。在这种情况下,主键通常是a组合键由两个主键组成表。
的例子:我们有一个应用程序,它用这个模型注册员工的到达时间:
user { id_user, name, department, job }
arrival_log { id_user, arrival_time, department }
arrival_log的每一行都需要指定user_id。没有user_id,我们就不知道谁来过办公室。实体arrival_log是一个弱日志,因为它依赖于其他实体的存在(user)来工作。
虚线=>非标识关系。
定义:非识别关系是指子节点可以独立于父节点而被识别。
的例子:
flower( flower_id, flower_latin_name, flower_type_id )
flower_type( flower_type_id, name, description )
flower和flower_type之间的关系是非识别的,因为每个flower_type都可以被识别,而不必存在于flower表中。