繁体   English   中英

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

[英]How to set database for project used on multiple sub-domains and which technology is the best to use?

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

项目(THE LOGIC)应该类似于slack.com。 子域代表客户端(clientAlpha.slack.com,clientBeta.slack.com等)。 问题是,我可以想象有多种解决方案,而且所有解决方案都有很多缺点。

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

  1. 如何组织多个客户端的数据库结构?

    • 每个客户端都有自己的带有一些前缀的数据库。 但是某种“超级数据库”存在问题,导致需要多数据库连接。 数据库结构更新期间,多个数据库=繁琐的工作。
    • 一个数据库,其中包含一些“超级表”和每个客户端许多相同的表。 我这是最丑的解决方案。 与上述相同的结构更新问题。
    • 带有“普通”表的“普通”数据库,其中客户机由foreign_key表示。 此解决方案影响数据库的速度。
  2. 最好使用哪种类型的数据库? 我的意思是数据(行)数是否有限制? 我在MySQL和MongoDB上有良好的做法。 没有GPS,没有斑点-表格中只会存储“纯”数据(数字,字符串,布尔值,文本)

  3. 在服务器上使用PHP还是很普遍,或者在创建新项目时PHP失效了? /或使用JavaScript(node.js)很好?

我试图从中找到一些信息,但是千人=千意见:/

感谢您的指导和建议。

一些注释,以供评论:

  • 打开的数据库连接不仅可以访问默认数据库。 使用datbase.table访问其他数据库。
  • 使用不同(且唯一)的前缀或不同的数据库。 不要混在一起。
  • 如果使用不同的数据库,请使用一个特殊的数据库存储全局数据(您的超级表)。
  • 始终存在数据库限制。 最好的方法是估计您的需求,将其乘以10,然后查看数据库描述。 无论如何,大多数磁盘和内存空间都是限制。
  • 使用最佳成员进行干净的数据库布局(例如,如果仅存储0到1000之间的值,则选择smallint ),为您的数据库访问创建原理图以确定键。 在开始执行之前,请同时执行这两项操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM