从一开始就以正确的方式设计数据库重要吗?

use*_*062 2 database-design

我是一名初级 Web 开发人员,我使用 MySQL,有时还使用 MS SQL Server。但是,我没有那么多关于数据库的信息,只有能够构建一些表的基本信息。

现在,如果我的网站发展壮大并且有一天我提高了我的数据库技能,并且我发现我想重新设计我的数据库,那会不会影响我的应用程序的工作方式或不丢失任何数据?

Jus*_*ave 7

可能的?大概。实际的?可能不取决于“不影响我的应用程序的工作方式”对您意味着什么。

与其他任何事情一样,如果您在摇摇欲坠的基础上构建一个软件,很可能如果您决定需要重新设计某个组件,这将是相对痛苦的,并且可能涉及对您的其他地方的更改应用。如果您使用将来需要更改的语言或框架构建您的应用程序,您可能需要更改应用程序的工作方式。如果您构建的应用程序无法扩展,那么稍后提高性能将更加困难,可能会涉及整个代码库的大量更改。如果您在设计不当的数据库上构建应用程序,重新设计它、转换所有数据并将更改传播到应用程序将非常耗时。

当然,这并不意味着在您成为所有方面的专家之前,您不应该构建任何东西。成为专家的很大一部分是犯错误并从中学习。如果您的网站足够受欢迎,并且您对数据库了解得足够多,从而得出结论,您的初始数据模型存在缺陷,并且值得重新设计整个数据模型,这可能意味着您已经非常成功,并且必须致力于“版本 2 架构”是一个很好的问题。另一方面,在设计数据模型以避免最容易避免的陷阱时,很可能值得拿起一本关于基本数据建模的书,阅读一些关于规范化的内容。