fbpx
维基百科

关联实体

关联实体关系模型实体关系模型理论中的术语。关系型数据库要求用一个基本关系(即一个基本表)实现多对多英语Many-to-many (data model)的数据关系。这种基本关系称为关联表(associative table);还有许多名字:bridge table, cross-reference table, crosswalk, intermediary table, intersection table, join table, junction table, link table, linking table, many-to-many resolver, map table, mapping table, pairing table, transition table

关联表通常包含指向其他多个表的多个外键。从关联表到单张数据表是多对一关系。

例子

下例是给用户授权。有多个用户、多种权限,每个用户可以有0或多个权限,每种权限可以授予0或多个用户:

CREATE TABLE Users (  UserLogin varchar(50) PRIMARY KEY,  UserPassword varchar(50) NOT NULL,  UserName varchar(50) NOT NULL ); CREATE TABLE Permissions (  PermissionKey varchar(50) PRIMARY KEY,  PermissionDescription varchar(500) NOT NULL ); -- This is the junction table. CREATE TABLE UserPermissions (  UserLogin varchar(50) REFERENCES Users (UserLogin),  PermissionKey varchar(50) REFERENCES Permissions (PermissionKey),  PRIMARY KEY (UserLogin, PermissionKey) ); 
 

SELECT语句通常使用joining把主表变为宽表:

SELECT * FROM Users JOIN UserPermissions USING (UserLogin); 

这将列出所有用户的所有权限。

Inserting到关联表涉及多步:首先向主表插入数据,再修改/插入关联表。

-- Creating a new User INSERT INTO Users (UserLogin, UserPassword, UserName) VALUES ('SomeUser', 'SecretPassword', 'UserName'); -- Creating a new Permission INSERT INTO Permissions (PermissionKey, PermissionDescription) VALUES ('TheKey', 'A key used for several permissions'); -- Finally, updating the junction INSERT INTO UserPermissions (UserLogin, PermissionKey) VALUES ('SomeUser', 'TheKey'); 

参见

  • 多对多 (数据模型)英语Many-to-many (data model)
  • 关系数据库
  • 独一无二键英语Unique key

参考文献

  • Hoffer, Jeffrey A.; Prescott, Mary B.; McFadden, Fred R. Modern Database Management 7th. Prentice Hall. 2004. ISBN 978-0131453203. 
  • Codd, E. F. A Relational Model of Data for Large Shared Data Banks. Communications of the ACM (ACM). 1970, 13 (6): 377–387. doi:10.1145/362384.362685. 

关联实体, 此條目已列出參考文獻, 但因為沒有文內引註而使來源仍然不明, 2021年4月17日, 请加上合适的文內引註来改善这篇条目, 是关系模型与实体关系模型理论中的术语, 关系型数据库要求用一个基本关系, 即一个基本表, 实现多对多, 英语, many, many, data, model, 的数据关系, 这种基本关系称为关联表, associative, table, 还有许多名字, bridge, table, cross, reference, table, crosswalk, intermediary. 此條目已列出參考文獻 但因為沒有文內引註而使來源仍然不明 2021年4月17日 请加上合适的文內引註来改善这篇条目 关联实体是关系模型与实体关系模型理论中的术语 关系型数据库要求用一个基本关系 即一个基本表 实现多对多 英语 Many to many data model 的数据关系 这种基本关系称为关联表 associative table 还有许多名字 bridge table cross reference table crosswalk intermediary table intersection table join table junction table link table linking table many to many resolver map table mapping table pairing table transition table 关联表通常包含指向其他多个表的多个外键 从关联表到单张数据表是多对一关系 例子 编辑下例是给用户授权 有多个用户 多种权限 每个用户可以有0或多个权限 每种权限可以授予0或多个用户 CREATE TABLE Users UserLogin varchar 50 PRIMARY KEY UserPassword varchar 50 NOT NULL UserName varchar 50 NOT NULL CREATE TABLE Permissions PermissionKey varchar 50 PRIMARY KEY PermissionDescription varchar 500 NOT NULL This is the junction table CREATE TABLE UserPermissions UserLogin varchar 50 REFERENCES Users UserLogin PermissionKey varchar 50 REFERENCES Permissions PermissionKey PRIMARY KEY UserLogin PermissionKey SELECT语句通常使用joining把主表变为宽表 SELECT FROM Users JOIN UserPermissions USING UserLogin 这将列出所有用户的所有权限 Inserting到关联表涉及多步 首先向主表插入数据 再修改 插入关联表 Creating a new User INSERT INTO Users UserLogin UserPassword UserName VALUES SomeUser SecretPassword UserName Creating a new Permission INSERT INTO Permissions PermissionKey PermissionDescription VALUES TheKey A key used for several permissions Finally updating the junction INSERT INTO UserPermissions UserLogin PermissionKey VALUES SomeUser TheKey 参见 编辑多对多 数据模型 英语 Many to many data model 关系数据库 独一无二键 英语 Unique key 参考文献 编辑Hoffer Jeffrey A Prescott Mary B McFadden Fred R Modern Database Management 7th Prentice Hall 2004 ISBN 978 0131453203 Codd E F A Relational Model of Data for Large Shared Data Banks Communications of the ACM ACM 1970 13 6 377 387 doi 10 1145 362384 362685 取自 https zh wikipedia org w index php title 关联实体 amp oldid 72088004, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。