我使用超级英雄为我的学校项目之一,我有一个超级英雄表(显然)和一个敌人表。所以敌人表有两个外键:有两个外键从一个主要来的表
bad_superhero_id
和
good_superhero_id
此表的目的是向好的超级英雄从字符表坏的超级英雄(他们的敌人)链接(超级英雄) 。这两个外键都取自超级英雄表的id。问题是我的老师不喜欢这个,我不知道为什么。我的意思是,我在一本名为的书中看到了这个例子。从PHP5开始,Apache和MySQL Web开发我也问过在创建数据库结构方面有丰富经验的同事。他们说这不是问题,但我的老师希望我给她举个例子,因为她不认为这是很好的关系,并希望我创建一个她认为的愚蠢的解决方法。我仍然认为这不是一种创造这种关系的不好方法,所以我想在这里问这个问题得到第三个意见。如果您提出您的意见,以便我能够理解这种使用这种关系的不好或不重要的做法,我将不胜感激。
编辑:
CREATE TABLE superhero (
id INT NOT NULL AUTO_INCREMENT,
nick_name VARCHAR,
align ENUM ('good', 'bad'),
PRIMARY KEY(id)
) ENGINE=INNODB;
CREATE TABLE enemies_link (
id INT NOT NULL AUTO_INCREMENT,
good_sh_id INT NOT NULL,
bad_sh_id INT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (good_sh_id, bad_sh_id)
REFERENCES superheroes(id)
ON UPDATE CASCADE ON DELETE RESTRICT
) ENGINE=INNODB;
EDIT2:是的,我忘了补充一点,我想是N到N连接。比方说,蜘蛛侠对他的敌人有毒液和绿色妖精,另一方面,毒液还有其他一些好的超级英雄作为敌人,等等。
请编辑您的文章并包含两张表的定义。谢谢。 –
我不完全确定你的目标是什么。请包括表格定义 – SystemFun
这张表格定义了什么样的关系?你的老师提倡的另一种方法是什么? – jsalonen