MySQL:很多连接或额外的外键?

时间:2011-02-16 12:09:36

标签: sql mysql normalization

我有以下表结构:

CREATE TABLE pilot_groups (
id INT PK,
name VARCHAR(50),
....
);

CREATE TABLE pilot_group_leaders (
id INT PK,
pilot_group_id INT FK,
name VARCHAR(50),
address TEXT,
....
);

CREATE TABLE members (
id INT PK,
pilot_group_leader_id INT FK,
country_id INT FK,
type VARCHAR(50),
name VARCHAR(50),
....
);

CREATE TABLE farms (
id INT PK,
member_id INT FK,
....
);

所以我必须制作一份报告,并显示按 pilot_group 分组的所有农场。要使用当前结构来完成它,我将不得不做3个连接,在我看来,这些连接不是非常优化和高效。我想在 farm 表中放置额外的外键,但我会重复。网站/应用程序的目的主要是用于生成报告和输入数据。哪种方法可能更好?

2 个答案:

答案 0 :(得分:4)

完全删除'id'键并使用自然主键可能会有很大帮助。但是,说这会花费我的业力: - )

答案 1 :(得分:3)

坚持使用当前版本,不要复制外键。

你应该能够摆脱桌面上的一些索引。

如果它没有破坏,就不要修理它。你确实遇到了性能问题,或者你是否期待它们?