如何为多个子域上使用的项目设置数据库以及哪种技术最好使用?

问题描述 投票:-1回答:1

我正在尝试开发一个大型Web项目,该项目应该在子域代表客户端的多个子域上使用。我遇到了这个问题,我不知道这类项目的最佳或推荐的解决方案。

项目(THE LOGIC)应该像slack.com。子域代表客户端(clientAlpha.slack.com,clientBeta.slack.com等)。问题是,我可以想象多种解决方案,所有这些解决方案都存在许多缺点。

所有数据都将存储在我的服务器上 - 客户端只进行注册

  1. 如何为多个客户端组织数据库结构? 每个客户端都有自己的数据库,名称前缀为但是某种“超级数据库”存在问题,导致需要多数据库连接。多个DB = DB结构更新期间的丑陋工作。 一个DB带有一些“超级表”,每个客户端有许多相同的表。我这是最丑陋的解决方案。与上面相同的结构更新问题。 具有“普通”表的“正常”DB,其中客户端由foreign_key表示。该解决方案会影响DB的速度。
  2. 哪种类型的DB最好用?我的意思是数据(行)数量有任何限制吗?我有MySQL和MongoDB的良好实践。没有GPS,没有blob - 只有“纯”数据将存储在表格中(数字,字符串,布尔值,文本)
  3. 是否仍然常常将PHP用于服务器,或者PHP对于新项目的创建已经死了? /或者使用JavaScript(node.js)是好的吗?

我试图找到一些有关这方面的信息,但千人=千意见:/

感谢您的指导和建议。

javascript php database settings project
1个回答
1
投票

一些注释,很多评论:

  • 开放数据库连接不仅可以访问默认数据库。使用datbase.table访问其他数据库。
  • 使用不同(和唯一)前缀或不同数据库。不要混合它们。
  • 如果使用不同的数据库,请为全局数据(超级表)使用一个特殊数据库。
  • 始终存在数据库限制。最好是估计您的需求,将它们乘以10并查看数据库描述。无论如何,大多数磁盘和内存空间都是限制。
  • 使用最佳成员创建一个干净的数据库布局(例如,如果只存储0到1000之间的值,则选择smallint),为数据库访问创建原理图以确定密钥。在开始实施之前做两件事。
© www.soinside.com 2019 - 2024. All rights reserved.