设计/可视化Mysql数据库以避免返工


Designing/Visualizing a Mysql database to avoid rework

多年来我一直在编写php企业应用程序,但我仍然希望得到反馈。

通常当我得到功能规格时,我会创建一个工作表,说明完成项目需要多长时间。我没有团队,我的代码从开始到结束。

几乎在大多数大型应用程序中,在达到中途之后,我发现数据库应该以一种稍微不同的方式设计。因此,为了更好地优化和数据获取,我创建、删除或修改了一些表(有时不止几个表)。

所以根据我的经验,我总是要在中途的某个地方做一个返工。

以下是我在大型应用程序中遵循的步骤。

  1. 可视化数据库我更喜欢画草图。
  2. 我已经编写了自己的PHP MVC框架,我使用它。
  3. 创建单元测试(如果需要)
  4. 做一些优化。
  5. 代码清理。

我的问题:我从来没人教过编程。我从错误和经验中学到了一切,当然还有Stackoverflow。我是否遵循了正确的模式?或者有没有更好的方法来避免返工。我很抱歉,我的问题可能听起来很无聊,但我真的在寻找一些有用的建议。

这个注释太长了…

  1. 对StackOverflow持保留态度。是的,有一些非常聪明、写得很好的答案,但是也有很多"盲人领盲人"的例子。如果你知道答案,你通常不会问问题,如果有人得到了一个糟糕的解决方案,但它有效,他们不知道更好的方法,他们可以像其他人一样将其标记为接受。有很多人在这个网站上的心态是"如果它被接受,那么它一定是正确的",这最终会咬他们的屁股。
  2. 找一个在你的领域,你个人尊重的人,让他们仔细看看你的数据库设计/方法,而不是提出模糊的问题。你的过程听起来在你概述的大致轮廓中很好,但是谁知道在细节中隐藏着什么样的恶魔。
  3. 如果有代码的某些小部分,你仍然希望被互联网陌生人审查,你可以尝试CodeReview.StackExchange.com。关于SO的CR问题比你眨眼都快。

我觉得你的舞步不错。你可以考虑发布一些你的工作代码供审查,以获得经验丰富的程序员对设计、最佳实践等方面的意见。如果你身边没有专家,也可以在聊天室里找到很多精通特定语言的活跃用户。