为具有巨大增长潜力的Web应用程序设置数据库的正确方法是什么?

时间:2016-08-01 13:07:27

标签: php mysql laravel

我是一名软件工程师(几个月前完成了我的软件工程师研究),为了我的工作,我开发了一个大型可扩展的Web应用程序。另一家公司负责编程工作并将数据库置于其后。我们定义了数据和它们之间的关系,但没有给出应该使用的硬数据库结构。

现在第一个(内部)事物是可见的。我查看了ans后面的数据库结构(在我看来)有些奇怪的东西。

对于用户,他们创建了一个表用户,其中包含id,email和password等内容。在此附近,他们创建了一个user_meta表,其中包含id,key和value。

当我有一个用户:

  • 用户ID
  • 电子邮件
  • 密码
  • 名称
  • 名字
  • 地址
  • 手机

id,email和密码存储在用户表中。对于其他信息,是在user_meta表中创建的行。这意味着在这种情况下,为1个用户创建了4行(在我们的例子中,每个用户超过20行)此结构是每个对象的用户,应该保存在数据库中。

我学会了创建一个包含用户所需的所有数据的表。所以在我的逻辑中它应该是一个包含7个字段的表。因为我在实践中没有太多经验(因为几个月前我已经准备好了我的学士学位软件工程师),我对IT公司使用的结构感到有点困惑。

额外信息:

  • 我们的软件基于Laravel框架(根据我的建议)
  • 我们的软件使用MySQL数据库

问题:

  • 这是为大型系统或类似的东西创建数据库的正常方法,因为我从未在我的研究或其他项目中看到过这个。
  • 这是最好还是坏的做法?
  • 在我看来,这对性能不利。特别是当用户数量增长时,这是真的吗?或者这样做是为了获得高性能(因为不需要选择整个记录?)(在我们的情况下,我们预计2017年底至少有100,000个用户,当我们的项目通过时,它们会越来越快地增长。我们在几年内远远超过1.000.000用户的重要机会)
  • 我认为他们这样做的原因是"对象"可以很容易地改变,但在我看来,总是可以向表中添加字段,你永远不应该删除字段(也不是在数据库的结构可能的情况下),这是我的意见吗?

抱歉,如果问题是" noob问题"但对我而言,这是我生活中的第一个大项目,所以我想念一些经验,但尝试专业地管理项目。我们将在周三的会议上讨论这个问题。通过这种方式,我想在这个主题中做好准备。

0 个答案:

没有答案