我是一名开发人员,以前从未在DB上工作过(设计DB)。我正在为一个员工管理系统设计一个数据库,这是一个Node.js + Express应用程序,使用MySQL作为其DB。
我已经有了所需的表、列,但我处理的未知数仍然很少。到目前为止,这是我的计划,我需要你的意见。
任何关于这类设计的参考、网站或博客将不胜感激。
谢谢。
发布于 2016-08-02 03:42:37
我不推荐这种方法,我认为你也应该:
( A)将所有信息放在相同的表中,并有一个companyId列对它们进行排序。
或
( B)为每个公司建立单独的数据库,并使用代码使用适当的数据库。
问题是,使用您的方法,如果您有多个具有不同名称的表的副本,将很难维护您的应用程序。例如,如果决定向其中一个表添加列,则必须编写与表实例相同的SQL脚本。对于所有的唯一标识符,您也会有一个糟糕的时间。
以下是每种设计的优点/缺点:
A)将所有信息放在相同的表中,并有一个compagnyId列对它们进行排序()
优势:
缺点:
B)为每个公司建立单独的数据库,并使用代码使用适当的数据库。
优势:
缺点:
使用此“两步登录”的应用程序的一个示例是松懈,当您登录时,首先输入您的团队域,然后输入您的用户凭据。
我认为谷歌工作应用程序是同一种方法。而且,我认为我工作过的大多数CRM都为他们的客户提供了一个单独的数据库。
最后,我想向您介绍链接到一个有趣示例的关于堆栈溢出的另一个问题。
发布于 2016-08-02 03:22:08
你不应该仅仅因为公司不愿意分享他们的信息就把你的桌子分开。相反,您应该在每个表中都有一个companyId列,并访问每个查询的相关数据。这应该在后端实现。
https://stackoverflow.com/questions/38711213
复制相似问题