我在这个设计问题上遇到困难,希望能有所帮助。数据设计辩论
我有一个医生办公室,提供某些特权,目前只有5个特权,但可以添加更多特权。这些权限中的每一个都具有“是”或“否”的状态,但将来可能会有更细粒度的状态,并且这些权限中的每一个都与某个位置(呃,住院,门诊)相关,他们也可能在将来扩展。
因此,目前我有表OfficePrivileges,PrivilegeLocation,PrivilegeType,PrivilegeStatus。
OfficePrivilege是PrivilegeLocation和DoctorOffice之间的连接表。它具有OfficeID和PrivilegeLocationID的双主键。
有一次,我将类型和状态加入到OfficePrivileges表中,然后切换到让类型表成为位置和状态的子元素为子类型。它们都是单个主键表。
如果你在设计这套表格,你会怎么做?我在想,这几乎是一个层次问题。我恨他们。我想将编辑屏幕放在顶部具有位置的交叉表中,在侧面输入,细节为状态。这是它目前是如何在系统中,我试图整合,但它的一个COBOL和后端处理层次不是关系数据库更好....
编辑:以帮助清理混乱:
对于我的例子,有承认特权,参加特权,咨询特权和外科特权。这些地点是住院病人,急诊室,门诊病人和手术/手术。目前状态仅为是或否。但他们可能会根据客户的需求在未来发生变化。
此信息存储在我的数据库的表中。
您可能会发现访问控制列表(ACL)很有趣。 – NullUserException 2010-08-09 14:59:19
特权如何实际工作?是全部还是全无?或者某些用户是否只有只读权限?或编辑但不删除? – scunliffe 2010-08-09 15:00:54
@scunliffe:我相信他在谈论医院特权。在医学界,如果医生可以将您送到特定的医院,那么该医生在该医院享有“特权”。 – AllenG 2010-08-09 15:06:30