美好的一天,我正在为一个包含两个部分的Web应用程序设计MySQL数据库:


第一部分是成员系统,维护国家/组织/子组织/用户层次结构,服务参数和用户角色。
第二部分是一个Web应用程序,用于管理订单和这些订单中的任务。它将使用成员系统对用户进行身份验证,并获取为此Webapp配置的角色和服务参数。
将来,电子拍卖将有另一个应用程序(以后可能还会有更多),它将使用相同的成员系统来认证用户并获取电子拍卖的角色和服务参数。


所有这些Web应用程序通常将由相同的组织/用户使用。为每个应用程序创建单独的架构并在它们之间创建外键是个好主意吗?例如,用于管理订单的webapp将具有其自己的架构,成员系统将具有其自己的架构,而订购表则webapp将引用成员架构中的表(因为订单具有owner = Organization,user等)。稍后拍卖webapp将在成员系统架构中拥有自己的架构引用表。这种设计的利弊是什么?还是建议您将它们全部放在一个架构中?请指教。

谢谢。

最佳答案

您要为每个应用程序分离数据库设计


出于安全原因
保持整洁
等等


另一方面,您希望与用户信息共享同一张表,并且不想放弃外键关系。我也不会忽略它。

因此,如何:

有一个模式,在该模式中,您仅维护用户信息。在此表上放置触发器,该触发器在插入后将行插入到所有其他应用程序模式的相同表中。
因此,当您创建一个新用户时,您只需在主架构的成员表中输入一个条目即可。它只是写的。在每个应用程序的每个架构中,您都有另一个成员表(可以通过外键引用),该表是只读表。

10-08 04:31