我应该为每个Web应用程序创建特殊架构还是将它们全部放在一个架构中?

时间:2014-07-29 15:45:19

标签: mysql database-design database-schema

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

  1. 第一部分是维护国家/组织/子组织/用户层次结构,服务参数和用户角色的成员系统。
  2. 第二部分是用于管理这些订单中的订单和任务的Web应用程序。它将使用成员系统对用户进行身份验证,并获取为此Web应用程序配置的角色和服务参数。
  3. 将来会有另一个用于电子拍卖的应用程序(后来可能会有更多),它将使用相同的成员系统来验证用户并获得电子拍卖的角色和服务参数。
  4. 所有这些Web应用程序通常由相同的组织/用户使用。为每个应用程序创建单独的模式并在它们之间创建外键是否是个好主意?例如,用于管理订单的webapp将具有它自己的架构,成员系统将具有它自己的架构,并且订购webapp的表将引用成员架构中的表(因为订单具有所有者=组织,用户等) )。以后的拍卖webapp将拥有它自己的模式引用成员系统模式中的表。这种设计的优点和缺点是什么?或者你会建议把它全部放在一个模式中?请指教。

    谢谢。

1 个答案:

答案 0 :(得分:0)

您想要为每个应用分开数据库设计

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

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

那么,这个怎么样:

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