Php 大型可扩展应用程序的数据库表结构
我是一名软件工程师(从几个月前开始准备学习),为了我的工作,我开发了一个大型可伸缩的web应用程序。另一家公司从事编程工作,并制作其背后的数据库。我们定义了数据以及它们之间的关系,但没有给出它们应该使用的硬数据库结构 现在第一个(内部)事物是可见的。我查看了ans背后的数据库结构(在我看来)发现了一些奇怪的东西 对于用户,他们创建了一个表users,其中包含id、电子邮件和密码等内容。在这附近,他们创建了一个包含id、key和value的user_元表 当我有一个用户具有:Php 大型可扩展应用程序的数据库表结构,php,mysql,sql,database,laravel,Php,Mysql,Sql,Database,Laravel,我是一名软件工程师(从几个月前开始准备学习),为了我的工作,我开发了一个大型可伸缩的web应用程序。另一家公司从事编程工作,并制作其背后的数据库。我们定义了数据以及它们之间的关系,但没有给出它们应该使用的硬数据库结构 现在第一个(内部)事物是可见的。我查看了ans背后的数据库结构(在我看来)发现了一些奇怪的东西 对于用户,他们创建了一个表users,其中包含id、电子邮件和密码等内容。在这附近,他们创建了一个包含id、key和value的user_元表 当我有一个用户具有: 用户ID 电子邮件
- 用户ID
- 电子邮件
- 密码
- 名字
- 姓氏
- 地址
- 电话
额外资料:
- 我们的软件基于Laravel框架(根据我的建议)
- 我们的软件使用MySQL数据库
问题:
- 这是为大型系统或类似系统创建数据库的正常方法吗?因为我在研究或其他项目中从未见过这种方法
- 这是最好的做法还是不好的做法
- 在我看来,这对性能不好。尤其是当用户数量增加时,这是真的吗?或者可以这样做以获得高性能(因为不需要选择一个完整的记录?(在我们的情况下,我们预计2017年底至少有10万用户,当我们的项目通过时,这将增长得越来越快。几年内,我们的用户数将远远超过1.000.000)
- 我认为他们这样做的原因是“对象”可以很容易地更改,但在我看来,向表中添加字段始终是可行的,并且永远不应该删除字段(在数据库结构允许的情况下也是如此),我的意见是对的吗
一百万条记录并不多(除非数据库设计真的很糟糕).为什么在不到5分钟的时间内a-1?我没有详细描述我的问题吗?我不认为这个问题应该被否决。大多数人会告诉你,这是一个糟糕的方法,搜索实体属性值或一个true-lookup-table。再次感谢0上的+so iam,我编辑了我的问题并发布了新的内容:-(所以现在它有一个副本,很抱歉…,我会搜索你的关键词,谢谢你的提示。你存储额外信息的方法叫做EAV,就像@dnoeth提到的那样。这并不坏,但大多数人会说是-他们是白痴,只看到了问题的一半。但是,还有一个替代方法-使用EAV(或您拥有的元表),您可以使用MySQL 5.7的
JSON
数据类型,并以JSON
的形式为用户存储额外的数据。与生活中的一切一样,解决这个问题的每一种方法都有其起伏。而且,对于当今的硬件来说,一百万条记录确实很小——在我的工作中,我们处理的数据是数十个数据库的一百万倍,而且效果非常好。