Java 保护多用户web应用程序中的数据

Java 保护多用户web应用程序中的数据,java,mysql,sql,database,web,Java,Mysql,Sql,Database,Web,我现在脑子里有个大问题。长话短说,让我们以某种在线药房网络为例。它有数百万用户,数百万数据,只有一个数据库。让我们假设数据库有一个Patient表。每个新药房添加的每个新患者都将保存在此表中 但是,即使数据在同一个患者表中,它也会确保药房“A”只能访问其患者而不能访问任何其他人,药房“B”只能访问其患者而不能访问任何其他人,以此类推。他们将为每个药店提供用户名和密码,但同样,由于只有患者表和一个数据库,他们如何确保这些数据不被彼此共享?我确信他们不会为每个用户创建单独的数据库:D 更新 请不要把

我现在脑子里有个大问题。长话短说,让我们以某种在线药房网络为例。它有数百万用户,数百万数据,只有一个数据库。让我们假设数据库有一个
Patient
表。每个新药房添加的每个新患者都将保存在此表中

但是,即使数据在同一个
患者
表中,它也会确保药房“A”只能访问其患者而不能访问任何其他人,药房“B”只能访问其患者而不能访问任何其他人,以此类推。他们将为每个药店提供用户名和密码,但同样,由于只有
患者
表和一个数据库,他们如何确保这些数据不被彼此共享?我确信他们不会为每个用户创建单独的数据库:D

更新


请不要把我的问题搞混了。正如
TonyHopkinson
所说,在
Patient
表中使用
PharmacyID
是解决方案。是的,但我们如何确保更多的安全?如果有人使用“Pharmacy A”配置文件并设法进入数据库,那么他拥有包括其他药房数据在内的所有信息,对吗?

我认为您指的是关联概念(如UML中的关联概念)。一名患者可能与一家或多家药店有联系,而一家药店有一名或多名患者。这与数据库概念有关。

将PharmacyID放入患者表中,并使用它限制可以选择哪些患者记录是一个过于简单的答案。你可能想做一个基本的数据库课程/教程,这里绝对是一座由鼹鼠山组成的山。@TonyHopkinson:谢谢你的回答,这就是像Facebook这样的大型应用程序是如何做到的?这不是一个真正的缩放问题。缩放应该是透明的。所以你可以按国家划分db,但是你会同时划分病人和药房。如果我需要通过分区表来扩展数据库,我不会使用mysql,我会使用设计成可扩展的dbms,而mysql不是。