【发布时间】:2013-06-17 13:54:55
【问题描述】:
我正在尝试建立一个数据库来保存/维护一组用户权限。我也在使用 Microsoft SQL Server Management Studio。
我创建了一个帐户表,PK= UserId。
我用 PK=ProfileId 创建了一个 Profiles 表
我使用以下 SQL 语句创建了一个 UserPrivileges 表
CREATE TABLE UserPermissions
(
UserId int REFERENCES Accounts (UserId),
ProfileId int REFERENCES Profiles (ProfileId),
PRIMARY KEY (UserId, ProfileId)
)
但是,当我从 UserPrivileges 表中执行 Select 查询时,即使我在前 2 个表中确实有一些条目,也没有返回任何内容。
根据我对外键的理解,它们的值取自引用的表。既然引用的表确实有条目,为什么没有输入到 UserPrivileges 表中?
【问题讨论】:
-
您在 UserPermissions 表中有记录吗?您的模式看起来像 UserPermission 是一个主表,其中 Accounts 和 Profiles 是 Details 表,如果您在 UserPermission 表中没有记录,即使您在两个 Details 表中有记录,您也无法运行选择查询,对于这种情况,您需要正确使用加入您的查询
-
我正在尝试使用 UserPrivileges 作为交集/联结表来将每个用户连接到权限配置文件
-
但是我的意思是创建交集表有什么用,为什么不使用外键直接将 Accounts 和 Profile 表相互直接链接?
标签: sql database foreign-keys key