I am designing a global ERP / scheduling system that has to be hosted on Google Cloud SQL and Google Datastore.

我正在设计一个全球ERP /调度系统,该系统必须托管在Google Cloud SQL和Google Datastore上。

For the most part the data is strongly relational and not large in volume or volatile, so is a natural fit for a relational database.

在大多数情况下,数据是强关系的,并且在数量或不稳定性方面不大,因此对于关系数据库来说是自然的。

The current design has addresses stored locally in the customer, contract, employee, site, workorder, contractedSites tables.. about 12 different places in total. I requested the DEV team modify the design to create an ADDRESS table that can be referenced by all other entities (with linking tables if necessary to provide flexiblity for address history, multiple addresses, etc).

当前设计具有本地存储在客户,合同,员工,站点,工作订单,contractedSites表中的地址。总共约12个不同的地方。我请求DEV团队修改设计以创建一个ADDRESS表,该表可以被所有其他实体引用(如果需要,可以使用链接表为地址历史记录,多个地址等提供灵活性)。

THE QUESTION - As the address / contact details format wildly differs for all these scenarios, different countries and multiple phone numbers etc, I was thinking that the ADDRESS & CONTACTDETAILS should be moved to the DataStore and reference them by id's from the Cloud SQL platform. So the structure is completely flexible to accomodate the address formats of the world.

问题 - 由于所有这些场景,不同国家和多个电话号码等的地址/联系方式格式大不相同,我认为ADDRESS&CONTACTDETAILS应该移动到DataStore并通过来自Cloud SQL平台的id引用它们。因此,该结构完全灵活,以适应世界的地址格式。

Does this sound sensible or is it over engineering the solution and should go with a generic address table in CLoud SQL only?

这听起来是否合理还是过度设计解决方案,应该只使用CLoud SQL中的通用地址表?

I have a concern as the bottleneck in the Google platform appears to be the single MySQL master.. This is a managed service limited to 16 vCPU's so I am attempting to move more functional areas into the Datastore.

我担心谷歌平台的瓶颈似乎是单个MySQL主机。这是一个限制为16个vCPU的托管服务,因此我试图将更多功能区域移入数据存储区。

Hope that makes sense!

希望有道理!

1 个解决方案

#1


1

You certainly could do that and wouldn't be the first person to run a mixed database system. You will be adding complexity though and there are several things you should weigh before proceeding down that path.

你当然可以做到这一点,并不会是第一个运行混合数据库系统的人。您将增加复杂性,在继续沿着这条路走下去之前,您应该权衡几件事情。

  • You mention the 16 vCPU limit - it's unlikely that addresses would be the reason to be worried about this, although Cloud Datastore would scale more easily (as in, we do it for you)

    你提到16个vCPU限制 - 地址不太可能是担心这个问题的原因,尽管Cloud Datastore会更容易扩展(就像我们为你做的那样)

  • For data with a more diverse schema requirements, since you are already using Could SQL would could simply use the JSON type to store it. As long as your are on Cloud SQL Second Gen.

    对于具有更多不同架构要求的数据,由于您已经在使用Can SQL,因此可以简单地使用JSON类型来存储它。只要您使用的是Cloud SQL Second Gen.

  • Transactions: If you need operations that involve data in both Cloud SQL and Cloud Datastore to be transactional, you'll have to implement that yourself. If you can live with potential inconsistencies and/or clean-up, no problem.

    事务:如果您需要将涉及Cloud SQL和Cloud Datastore中的数据的操作作为事务性操作,则必须自己实现。如果你可以忍受潜在的不一致和/或清理,没问题。

  • Cloud Datastore would definitely allow you a lot more flexibility to store this type of data and query it efficiently at scale. It's the sort of use case it excels in.

    Cloud Datastore肯定会让您更灵活地存储此类数据并大规模有效地查询。这是它擅长的用例。

更多相关文章

  1. MySQL数据库root账户的设置和管理
  2. JSON保存在数据库中并使用JQuery加载
  3. MySQL数据库表名、列名、别名区分大小写的问题
  4. Linux下mysql数据库root无法登录的情况
  5. 在MySQL中将数据从LATIN1转换为UTF8
  6. 版本5及更高版本中MySQL数据库的最大大小是多少?
  7. 数据库语言分类DDL,DCL,DML
  8. MySql_数据库触发器的使用
  9. Mysql PARTITION 数据表分区技术

随机推荐

  1. c程序的基本组成单位是什么?
  2. c语言中*是什么意思
  3. C++ 11新特性有哪些
  4. stdafx.h是什么头文件
  5. 可运行的c语言程序的扩展名为什么?
  6. c语言for循环如何打印菱形
  7. .net framework类库的主要功能是什么?
  8. c语言实现两个有序链表的合并(代码示例)
  9. c++数组初始化的种类有哪些
  10. 在嵌套使用if语句时,C语言规定else总是什