我们有一个管理公司、团队、分支机构、员工等的应用程序,并有不同的表格。现在我们有一个要求,我们必须让我们的技术合作伙伴访问相同的系统,这样他们也可以做我们正在做的同样的事情。但与此同时,我们需要在我们的系统中监督这些合作伙伴。
因此,就DB模式而言,管理它们的最佳方法是什么:
1)复制合作伙伴的整个模式,为此,我们必须复制大约50-60个表,而且随着系统的发展,将来还要复制更多的表。
2)在每个表中创建一些标志,说明它是内部实体还是外部实体。
如果有人有经验,请提出建议。
发布于 2016-06-13 10:11:43
在最后确定任何方法之前,请考虑以下几点。
您想要一个数据的整体视图吗?
我的意思是,您想要查看您的合作伙伴创建的数据以及您在单个报表/表单中创建的数据吗?如果答案是肯定的,那么将数据库存储在同一组表中并根据某些列来区分它们是有意义的。
是您的应用程序功能将发生重大变化的
如果这个问题的答案是否定的,那么将数据保存在同一组表中是有意义的。这样,您对系统所做的任何更改都将自动反映给所有用户,您将不必在模式/数据库之间复制代码位。
您和您的合作伙伴是否将使用相同的主/引用数据?
如果这个问题的答案是“是”,那么使用同一组表也是有意义的,因为您将消除不必要的冗余数据。
Implementation
我建议创建一个名为user_master的主表,而不是创建一个标志。此表的键应在每个事务表中可用。这样,如果希望在行中包含第二个合作伙伴,可以在user_master表中创建一个新条目,并对应用程序代码进行必要的修改。应用程序代码应该管理安全性。不用说,您也需要在数据库级别实现尽可能多的安全性。
其他建议
发布于 2016-06-13 05:51:35
你提出的任何建议都不可取。您需要遵循给定的指导方针,以确保整个系统的安全,并对您的技术合作伙伴进行审计。
1您应该在Admin端创建一个模块,它将显示现有的表以及将来将添加的表。
2为您的技术合作伙伴创建用户并提供对这些对象的权限。
3保持一个审计-跟踪表,并插入用户名/IP etc.in表的条目。因此,您将有一个完整的跟踪活动,由您的技术合作伙伴。
https://stackoverflow.com/questions/37781670
复制相似问题