Mysql 规范化建议

Mysql 规范化建议,mysql,database-design,normalization,database-performance,database-normalization,Mysql,Database Design,Normalization,Database Performance,Database Normalization,我将创建一个表,其中包含ID、Name、Email ID、Phone、Designation、Department和Institute等字段。在这方面,我认为将指定、部门和机构等领域作为外键是一种有效的方法(因为它具有冗余值)。我说得对吗?或者提出一些更好的想法 是的,你是对的,冗余是你应该避免的事情之一。我鼓励您阅读更多关于规范化的内容,因为您将发现更多的东西,这些东西不仅可以提高数据库的效率,而且在数据库增长和变得复杂时更易于使用/理解 正如上面回复中的示例,您还应该注意表/列的名称 所以不

我将创建一个表,其中包含ID、Name、Email ID、Phone、Designation、Department和Institute等字段。在这方面,我认为将指定、部门和机构等领域作为外键是一种有效的方法(因为它具有冗余值)。我说得对吗?或者提出一些更好的想法

是的,你是对的,冗余是你应该避免的事情之一。我鼓励您阅读更多关于规范化的内容,因为您将发现更多的东西,这些东西不仅可以提高数据库的效率,而且在数据库增长和变得复杂时更易于使用/理解

正如上面回复中的示例,您还应该注意表/列的名称

所以不是

外键名称、部门和机构


您应该遵循一种模式,将它们命名为
表名
+
id
,这样您只需查看它就知道它是一个外键,并且它引用了该表。

这一切都取决于需求。对于一张小桌子来说,这似乎还可以。但是对于一个大的表(数百万条记录),乍一看,它似乎效率低下。但是,如果你需要一个部门的记录,使用索引整数列(外键)的位置要比VARCHAR列快得多!你的问题不清楚。你对FKs写得很奇怪&“冗余值”和“高效”。你想做什么,为什么称之为标准化?你的家庭作业/作业是什么?您在设计和规范化方面的参考资料是什么?看起来您可能受到中提到的误解的困扰。请澄清你的问题。你很可能有很多误解。