我正在考虑将 GAE + NDB 用于一个新项目。我仍然对祖先有点困惑,所以我可以就如何正确使用它们提出一些建议。
我的案例:该应用程序将处理工厂的生产订单,我们计划拥有不同的客户。为了减少管理任务,我们将让所有客户端使用相同的应用程序和相同的数据存储(拥有单独的应用程序 + 数据存储将是客户端之间的一道很好的中国墙,但管理起来却是一场噩梦)。
我需要实现一种方法来隔离客户端之间的数据。客户端 A 应该无法访问此应用程序上任何其他客户端的任何数据。
那么是否建议在数据存储中使用祖先来分离来自不同客户端的数据? 我认为在这种情况下,我可以拥有诸如 ClientA-Products、ClientA-Orders、ClientB-Products、ClientB-Orders 等祖先键。或者甚至可能所有事务都由客户端键入:例如 ClientA、ClientB ..?
还是在每个实体中都有一个属性将实体与客户端关联起来更好? 在这种情况下,“产品”和“订单”实体都将具有属性“公司”,该属性必须由应用程序在每次写入时填写并包含在每次查询中。
提前感谢您的想法!