我在做一個由三個表組成的類項目:成員,事件和出勤。3表之間的SQL關係
- 會員表包含:MID作爲主鍵,名稱,地址,等等,並具有1個或多個0,或者以出席
- 事件表中包含許多關係:EventNo作爲主鍵,事件名稱,等等,並具有1個或多個0,或者以出席許多關係
- 出席包含:MID和EventNo
我可以創建表,但我不明白它們之間的關係。任何人都可以簡單解釋他們的關係,並幫助我編寫代碼?在此先感謝
我在做一個由三個表組成的類項目:成員,事件和出勤。3表之間的SQL關係
我可以創建表,但我不明白它們之間的關係。任何人都可以簡單解釋他們的關係,並幫助我編寫代碼?在此先感謝
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)
;
Select查詢會是這樣
select * from Event join Attendance on Event.EventNo=Attendance.EventNo
join Member on Member.MID=Attendance.MID
例如:
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-many
事件和成員之間。 One member
可以在many events
。 One event
可以有many members
。
拼寫校正
那麼,我必須創建Event和Member表之間的關係嗎? ??如果是這樣怎麼辦? – user3676506 2014-10-05 18:04:00
看第二個答案。 – W92 2014-10-05 18:06:42
最好的方式來理解的關係是藉助它,如果沒有幫助 - 在家裏試試吧!你應該首先顯示你自己的努力來理解這個事情,這基本上告訴你先測試它:) – 2014-10-05 17:52:06
只是爲了確認你是否使用了Microsoft SQL Server?數據庫之間的語法不同。應該通過定義外鍵約束來建立關係。至於與表格的DDL無關的基數,如果你正在繪製一張圖表,它會發揮作用。 – 2014-10-05 17:52:32
[3個表之間的SQL關係]的可能重複(http://stackoverflow.com/questions/23853781/sql-relation-between-3-tables) – 2014-10-05 17:54:37