2011-04-22 137 views
1

我有兩個表:一個區域(如科學,體育,教育),另一個用於職業(如科學家,設計師,高爾夫球員)。這兩張桌子之間有一種對外關係,目前沒有任何問題。幫助,數據庫建模

但現在我需要另一個表把「工號」,「平均年齡」,「年的公司」(這個列表是每個行業可能有所不同)。做這個的最好方式是什麼?創建另一個表?父母是什麼?基本上,這是第三種說法。

CREATE TABLE group ( 
    id smallint(5) unsigned NOT NULL auto_increment, 
    area varchar(30), 
    PRIMARY KEY (id) 
) 

CREATE TABLE job ( 
    ref int(10) unsigned NOT NULL auto_increment, 
    jobid smallint(5) unsigned NOT NULL, 
    job varchar(50), 
    PRIMARY KEY (ref) 
) 

    ALTER TABLE job 
    ADD CONSTRAINT FK_job 
    FOREIGN KEY (jobid) REFERENCES group(id) 
    ON UPDATE CASCADE 
    ON DELETE CASCADE; 
+1

您可以請您擴展您的系統數據的目的嗎?另外,請發佈現有表的創建表。謝謝! – 2011-04-22 15:52:00

+0

我想按類別進行下拉選擇。目前只缺第三類 – anvd 2011-04-22 15:56:21

回答

1

從我明白我會成立第三個表如下

Table: Employee 
First_Name varchar(30) 
Last Name varchar(30) 
Age (int(3)) 
Employment Date (DATE) 
Active (Yes/No) 
JobFK (Points to emprego.PK) 

在這種設置下可以使用的連接上你的表來計算有多少工人在同行業中。這些員工的平均年齡以及他們在公司工作多久。給出更多關於你當前表格的信息,我甚至可以描述這些信息的sql查詢。

+0

第一區>求職>員工。我不確定這種限制。它可以存在具有特殊性的職業。 – anvd 2011-04-22 16:08:50

+0

然後你需要更具體的代碼。英語也有幫助。如果您將正確的外鍵約束到另一個表上的相應主鍵,上表應該可以工作。 正如我所見。一名員工有一份工作。職業存在於職業中。 Employee.JobFK - > Emprego.PK Emprego.FK - > Agrupamento.PK – Genzume 2011-04-22 16:12:33

+0

我編輯我的代碼爲英語。問題的關鍵是:例如。高爾夫選手沒有與公司(假設)和醫生簽訂合同。 – anvd 2011-04-22 16:16:16