【发布时间】:2015-03-11 07:42:49
【问题描述】:
我现在有一个大问题。长话短说,让我们以某种在线药房网络为例。它拥有数百万用户、数百万数据,但只有一个数据库。让我们假设数据库有一个Patient 表。每个新药房添加的每个新患者都将保存在此表中。
但是,即使数据在同一个Patient 表中,它也确保药房“A”只能访问其患者而不能访问其他任何人,药房“B”只能访问其患者而不能访问其他任何人等等.他们将为每一家药房提供用户名和密码,但同样,由于只有Patient 表和一个数据库,他们如何确保这些数据不会相互共享?我确信他们不会为每个用户创建单独的数据库:D
更新
请不要混淆我的问题。正如TonyHopkinson 所说,在Patient 表中使用PharmacyID 是解决方案。是的,但是我们如何确保更多的安全性?如果有人使用“药房 A”配置文件并设法进入数据库,那么他也拥有包括其他药房数据在内的所有信息,对吧?
【问题讨论】:
-
将 PharmacyID 放在 Patient 表中并使用它来限制可以选择的患者记录是简单的答案。您可能想做一个基本的数据库课程/教程,绝对是从鼹鼠山上造就了一座山,在这里。
-
@TonyHopkinson:感谢您的回复,像 Facebook 这样的大型应用程序也是这样做的?
-
这不是一个真正的缩放问题。缩放应该是透明的。因此,您可能会按国家/地区拆分数据库,但随后您将拆分患者和药房。如果我需要通过分区表来扩展数据库,我不会使用 mysql 我会使用设计用于扩展的 dbms,而 mysql 不是。
标签: java mysql sql database web