我有一个MySQL数据库〜5000行。我想到在添加任何记录或列之前,我需要将数据库标准化。但即使我所做的所有研究都在努力理解几个概念。这是我现有的数据库模式的一个例子。如何正常化类别数据库
PK Category1 Category2 Category3 Produce_String Keywords Zip State City Country 1 Vegetable Potato f5kkfid34fbn organic ... ..... ... ..... 2 Vegetable Potato plf85jfuvj organic,fresh ... ..... ... ..... 3 Vegetable Cherry Tomato jf9vmu37jg9 fresh 4 Fruit Lemon kfkt8hkf0e fresh,yellow 5 Fruit Lemon fkg8rr03gnf 6 Fruit Red Apple fkf9gkty367r6 crispy
我的主要误解是,如何将数据相互关联,一旦列被分成单独的表格?例如,在一个数据库客户端中,我可以看到这些行以及它们如何相互关联,但是如果我将它们分开,这将不再是这种情况。我也担心不得不为同一条记录更新多个表,但我认为这是不可避免的。 此外,我不清楚正确的方式来正常化这一点。我的想法告诉我只关键词列,因为它是唯一有逗号分隔的列的列。但是,通过标准化标准,我认为我需要将类别,关键字和位置分开。
编辑 另一个值得关注我,是,如果我把类别在单独的表,每个都有自己的行,我失去的结构。所以我失去了按特定类别排序的能力。例如,蔬菜类别不会与水果有关。由于Produce_String是唯一的,我可以将它用作其他表中的外键吗?
如果您想了解正规数据库设计的规律,或者您想自己做,您认为这是正确的,这更多的是一个问题。学习与之相关的数据库设计和技术的规律,很早就很痛苦,但值得。您的设计目前为您提供服务,但最终在维护方面会让您付出代价。 – Edper
看到正常化 – Strawberry
有人请把这个问题摆脱苦难,并投票结束。 – EternalHour