2014-10-05 86 views
0

我在做一個由三個表組成的類項目:成員,事件和出勤。3表之間的SQL關係

  • 會員表包含:MID作爲主鍵,名稱,地址,等等,並具有1個或多個0,或者以出席
  • 事件表中包含許多關係:EventNo作爲主鍵,事件名稱,等等,並具有1個或多個0,或者以出席許多關係
  • 出席包含:MID和EventNo

我可以創建表,但我不明白它們之間的關係。任何人都可以簡單解釋他們的關係,並幫助我編寫代碼?在此先感謝

+1

最好的方式來理解的關係是藉助它,如果沒有幫助 - 在家裏試試吧!你應該首先顯示你自己的努力來理解這個事情,這基本上告訴你先測試它:) – 2014-10-05 17:52:06

+0

只是爲了確認你是否使用了Microsoft SQL Server?數據庫之間的語法不同。應該通過定義外鍵約束來建立關係。至於與表格的DDL無關的基數,如果你正在繪製一張圖表,它會發揮作用。 – 2014-10-05 17:52:32

+0

[3個表之間的SQL關係]的可能重複(http://stackoverflow.com/questions/23853781/sql-relation-between-3-tables) – 2014-10-05 17:54:37

回答

0
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 

DEMO

0

例如:

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 eventsOne event可以有many members

拼寫校正

+0

那麼,我必須創建Event和Member表之間的關係嗎? ??如果是這樣怎麼辦? – user3676506 2014-10-05 18:04:00

+0

看第二個答案。 – W92 2014-10-05 18:06:42