将员工登录数据与用户登录数据混合,还是有两个不同的表?

5ssjco0h  于 2021-07-29  发布在  Java
关注(0)|答案(2)|浏览(209)

关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。

9个月前关门了。
改进这个问题
我需要为我公司的两名员工以及应用程序的用户存储用户数据。由于我存储的是公司的详细信息,而且用户和公司之间有m-m连接,我是否也应该将公司的员工存储为普通用户,并以与其他公司相同的方式为公司创建一个公司实体,从而以相同的方式存储数据。
最终,我可以创建这样一个逻辑,即如果您是与公司(我的公司)绑定的用户,那么您可以获得查看所有客户机、编辑等的管理权限(允许权限),但如果您是xyz公司的用户,则只能查看他们的数据和编辑(允许权限)。
唯一的办法就是把我公司的员工分到另一张table上。在2+个位置存储相同格式的数据似乎是不干的。

mjqavswn

mjqavswn1#

您应该有一个应用程序的用户表。句号。那张table上可以有一家公司,而这家公司恰好可以是你的公司。
您可以使用约束或应用程序逻辑启用逻辑,这样您公司的用户就被认为是“管理员”。我想我在这里会小心的。我不确定所有员工都应该有权查阅每个人的记录。在某些情况下,访问可能更为有限。
也就是说,用户对数据库的需求应该是基于数据库的。你似乎被他们是你公司的雇员而分心了。那是无关的。你所拥有的只是一组碰巧有管理员权限的用户。

vh0rcniy

vh0rcniy2#

您需要有一个表来表示您的用户-否则您的数据将变得非规范化。这张表可能包含公司的详细信息,也可能不包含-这是你的选择。
你声明权利将基于他们工作的公司。如果您希望将访问权限绑定到公司,那么您可能应该有一个公司表-通过一对多关系链接到users表。
您可以使用company表来定义每个公司的用户有哪些访问权限(读、写等),或者如果您需要更细粒度的权限—创建一个链接到company表的权限表—这样来自company a的用户就可以对应用程序1和2(而不是3)进行管理访问。

相关问题