0

我在这里读到,使用 AI 整数来表示用户可能比分配的域(字符串)用户名更好。我可以接受,但是,当我在“用户”表中包含自动生成的用户 ID 和唯一域用户名时,我应该如何在其他表中将其表示为 FK?例如。带有'userid' AND 'domainname' 或只是用户ID 的部门表;具有“用户 ID”和“域名”的硬件表或只是“用户 ID”作为所有者?

4

2 回答 2

0

只是用户 ID。这是数据库规范化的关键组成部分;如果其他表包含可以由用户完全确定的任何其他信息,那么您将引入不一致的风险,即不同的记录对给定用户提出不同的声明。

于 2014-11-11T06:17:24.490 回答
0

我会给你一些想法,但不是确切的答案。-“这个答案是基于我对你的问题的理解”

设计实例:

Users

您在这里的主键是UserId,您可以将其用作其他表中的外键。

UserId | Usernames 

Department

您在这里的主键是DepartmentId,您可以将其用作其他表中的外键。

您还有一个UserId从表中调用的外键Users

DepartmentId | UserId |DomainName

Hardware

您的主键是HardwareId

您还有 2 个外键调用DepartmentIdUserId

HardwareId | DepartmentId | UserId (optional) | Etc...

好的,每个表都必须并且必须有自己的主键,并且您不能使用DepartmentIdandUserId成为表中的主键,Hardware因为它们是该表中的外键。

DepartmentId- 包括,这样你就会知道硬件基础所在的部门。

UserId- (可选),您将通过仅使用UserId

于 2014-11-11T04:26:11.357 回答