0

我正在创建一个windows窗体应用程序,它必须控制办公大楼中人员的进入和退出。这些人可能是访客或员工,每个人都必须在大楼入口处使用访问卡。当该人是访问者时,卡将被暂时编程,并且员工应该使用他们自己的卡。我的疑问是关于我的数据库。有没有办法很好地做到这一点?这些卡片(无论是员工还是访客)都有一个强大的钥匙,可以识别出它来自十字转门的制造商,我无法改变它。所以,我的结构是:两个分开的表格vs一个有两列的表格

在我的数据库中,我有一张桌子,在那里我保持卡。当有人试图进入大楼内时,旋转门将发送到我的系统的访问日期和时间以及卡片代码。现在我不知道如何区分员工和访客。我应该为员工和访客分配流量表吗?对于员工流程表,我使用相同的ID从卡表中获取员工卡。在访问者流程表中,我需要知道谁是访问者使用临时卡(临时卡的密钥永远不会改变,所以我不能只依赖于我的密钥)。或者,我应该只有一个带有Visitor_ID和Worker_ID列的流表,其中一个将始终为空(所以我知道它是否是具有值的字段的员工或访问者)。

谁能告诉我哪个更适用,为什么?

+2

难道你不能有一个名为IsEmployee的列,它存储0或1来表示她是否是员工? – Minh 2015-01-15 17:21:23

回答

1

员工和访客都是人。特别是可能(或可能不)具有分配给他们的访问卡的人。

我将有一个People表具有与AccessCard表的外键关系。如果你只关心这个人是否是员工或访问者,但是你存储的信息是相同的,那么布尔列就可以了。如果您的系统为员工和/或访问者存储其他信息,请创建一个员工和访问者表,并从人员到这些人员之间建立外键关系。

+0

谢谢@ Eric-J。我可以尝试一下! – 2015-01-15 19:51:40

1

我会创建单个表来存储员工和访问者,然后为Type(E,V)添加一个额外的列。