帮助数据库建模

时间:2011-04-22 15:49:20

标签: mysql database database-design

我有两张桌子:一张用于区域(如科学,运动,教育),另一张用于专业(如科学家,设计师,高尔夫球员)。这两个表之间存在外来关系,目前没有任何问题。

但是现在我需要另一张表来说明“工人数量”,“平均年龄”,“公司年数”(这个列表可能与每个职业不同)。做这个的最好方式是什么?创建另一个表?什么是父母?基本上,这是第三个陈述。

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 个答案:

答案 0 :(得分: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查询。