我有一个名为User的实体,具有属性Id、名称和电话号码。目标是开发一个实体关系图(ERD表示简洁),其中用户可能是商店出纳员,也可能是客户。
要发展可包括角色的雇员再培训计划是很容易的,但我又如何在雇员再培训中执行以下条件呢?
发布于 2017-12-12 16:59:10
首先:(出纳员也可以是顾客)
在这种情况下,您可以在出纳实体和客户实体之间使用名为“也可以是”的1到1关系。并将客户P.K作为F.K传送给收银员。这个F.K (客户出纳的外键)也可以是空的,并且应该是唯一的。
编辑:(基于@RDFozz通知)
我们可以在出纳和客户中使用类似的User_ID来显示出纳员也可以是客户。
其次:(只有出纳员才能将客户添加到商店的数据库中)
这意味着每个客户都有一个创建者,并且应该是一个出纳员。所以在收银员和客户之间有一对多的关系,叫做“创建者”。所以,你应该把收银员P.K作为F.K传送给客户。此F.K (客户中显示创建者id的出纳外键)不应为空。
第三:(只有出纳员才能将客户添加到商店的数据库中)
我们不能把我们项目的所有业务逻辑都投入到ERD中。因此,我们创建业务层或业务逻辑层(BLL),或者有时使用增强的SQL编写一些存储过程或函数(这些存储过程或函数有IF、循环等等)。
如果我们把收银机的P.K作为F.K存入客户,并防止它为空,那就足够了。您的插入客户应该有一个出纳ID要做。
https://dba.stackexchange.com/questions/187475
复制相似问题