首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >3表间的SQL关系

3表间的SQL关系
EN

Stack Overflow用户
提问于 2014-10-05 17:46:37
回答 2查看 80关注 0票数 0

我正在做一个由三个表格组成的班级项目:会员、活动和出席情况。

  • 成员表包含: MID作为主键、名称、地址等.并且与出席人数有1到0或多个关系。
  • 事件表包含: EventNo作为主键,EventName、etc...and与考勤有1或多个关系。
  • 出席人数包括: MID和EventNo

我可以制作桌子,但我不明白他们之间的关系。有人能简单地解释一下他们的关系并帮我写代码吗?提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-05 18:02:03

代码语言:javascript
运行
复制
CREATE TABLE Member
    ([MID] int primary key, [Name] varchar(5), [Address] varchar(8))
;

INSERT INTO Member
    ([MID], [Name], [Address])
VALUES
    (1, 'Name1', 'Address1')
;



CREATE TABLE Event
    ([EventNo] int primary key, [EventName] varchar(6))
;

INSERT INTO Event
    ([EventNo], [EventName])
VALUES
    (1, 'Event1')
;

    CREATE TABLE Attendance
        ([EventNo] int FOREIGN KEY REFERENCES Event(EventNo), [MID] int FOREIGN KEY REFERENCES Member(MID))
    ;

INSERT INTO Attendance
    ([EventNo], [MID])
VALUES
    (1, 1)
;

选择查询将类似于以下

代码语言:javascript
运行
复制
select * from Event join Attendance on Event.EventNo=Attendance.EventNo
join Member on Member.MID=Attendance.MID

演示

票数 0
EN

Stack Overflow用户

发布于 2014-10-05 17:54:32

例如:

代码语言:javascript
运行
复制
create table member (
  MID INT primary key ...,
  Name VARCHAR(30),
  ...
);

create table event (
  EventNo INT primary key ...,
  EventName VARCHAR(30),
  ...
);

create table attenance (
  EventNo INT,
  MID INT,
  //here add constraint for MID and EventNo - they are  foreign key from other tables.
  UNIQUE(EventNo, MID)
);

看起来,您在事件和成员之间有关系:many-to-manyOne member可以在many events中。One event可以拥有many members

拼写校正

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26205444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档