首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合作伙伴数据库模式

合作伙伴数据库模式
EN

Stack Overflow用户
提问于 2016-06-13 04:06:09
回答 2查看 329关注 0票数 0

我们有一个管理公司、团队、分支机构、员工等的应用程序,并有不同的表格。现在我们有一个要求,我们必须让我们的技术合作伙伴访问相同的系统,这样他们也可以做我们正在做的同样的事情。但与此同时,我们需要在我们的系统中监督这些合作伙伴。

因此,就DB模式而言,管理它们的最佳方法是什么:

1)复制合作伙伴的整个模式,为此,我们必须复制大约50-60个表,而且随着系统的发展,将来还要复制更多的表。

2)在每个表中创建一些标志,说明它是内部实体还是外部实体。

如果有人有经验,请提出建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-13 10:11:43

在最后确定任何方法之前,请考虑以下几点。

您想要一个数据的整体视图吗?

我的意思是,您想要查看您的合作伙伴创建的数据以及您在单个报表/表单中创建的数据吗?如果答案是肯定的,那么将数据库存储在同一组表中并根据某些列来区分它们是有意义的。

是您的应用程序功能将发生重大变化的

如果这个问题的答案是否定的,那么将数据保存在同一组表中是有意义的。这样,您对系统所做的任何更改都将自动反映给所有用户,您将不必在模式/数据库之间复制代码位。

您和您的合作伙伴是否将使用相同的主/引用数据

如果这个问题的答案是“是”,那么使用同一组表也是有意义的,因为您将消除不必要的冗余数据。

Implementation

我建议创建一个名为user_master的主表,而不是创建一个标志。此表的键应在每个事务表中可用。这样,如果希望在行中包含第二个合作伙伴,可以在user_master表中创建一个新条目,并对应用程序代码进行必要的修改。应用程序代码应该管理安全性。不用说,您也需要在数据库级别实现尽可能多的安全性。

其他建议

  • 要实现这些实体的物理分离数据,可以根据所使用的db实现分区或分片。
  • 执行彻底的回归测试,并检查您的数据是否在合作伙伴报告或表单中不可见。此外,检查合作伙伴无法更新或插入数据。
  • 由于系统中的数据将显著增加,因此对报告、表单和程序进行性能测试是有意义的。
  • 如果您正在使用索引,那么您将需要重新访问这些索引,因为您的where条件会发生变化。
  • 同时,重新审视你的钥匙和关系。
票数 1
EN

Stack Overflow用户

发布于 2016-06-13 05:51:35

你提出的任何建议都不可取。您需要遵循给定的指导方针,以确保整个系统的安全,并对您的技术合作伙伴进行审计。

1您应该在Admin端创建一个模块,它将显示现有的表以及将来将添加的表。

2为您的技术合作伙伴创建用户并提供对这些对象的权限。

3保持一个审计-跟踪表,并插入用户名/IP etc.in表的条目。因此,您将有一个完整的跟踪活动,由您的技术合作伙伴。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37781670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档