假设我有一个sql表:
CREATE TABLE `article` (
`article_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`family` varchar(255) NOT NULL,
`sub_family` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`price` float NOT NULL,
PRIMARY KEY (`article_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
这里每 family
的文章有一个或多个 sub_family
我应该创建另一个包含所有可能的 family
以及 sub_family
并使用 foreing key
?
数据示例:
2条答案
按热度按时间wpx232ag1#
如果要完全修复冗余,请尝试下表:
表2中的数据可能如下所示:
获取所有数据(如数据)的查询示例如下:
从我的Angular 来看,这个表是用来保存食物菜单数据的,它应该非常小。我认为可以创建一个专用表来保存family和sub-u family。
zazmityj2#
我也读了你的问题和评论。我认为您可以创建两个不同的表,这肯定会减少数据冗余和复杂性。
可以将族创建为父表:在族表中,可以为每个族和子族对声明一个唯一键(可以进一步用于外键引用),例如:
家庭:
您还可以为项目创建另一个表,这些项目将通过外键引用id与父级连接。
文章:
你可以试试这样的。我希望你觉得这很容易理解。