我有两张表:一张用于领域(如科学、体育、教育),另一张用于职业(如科学家、设计师、高尔夫球手)。两个表之间存在外部关系,目前工作没有任何问题。
但现在我需要另一个表来放置“ worker 人数”、“平均年龄”、“在公司工作的年限”(每个职业的列表可能不同)。做这个的最好方式是什么?创建另一个表? parent 会是什么?基本上,这是第三种说法。
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;
最佳答案
据我了解,我将按如下方式设置第三个表
Table: Employee
First_Name varchar(30)
Last Name varchar(30)
Age (int(3))
Employment Date (DATE)
Active (Yes/No)
JobFK (Points to emprego.PK)
通过这种设置,您可以在表中使用联接来计算同一职业中有多少 worker 。这些员工的平均年龄,以及他们在公司工作的时间。如果提供有关您当前表的更多信息,我什至可以描述该信息的 sql 查询。
关于mysql - 帮助数据库建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5757195/