我们在我们的小办公室里运行一个MySQL实例。我们有3个不同的应用程序都使用db作为它们的后备存储。单个模式具有所有三个应用程序的所有表。所有应用程序都使用一些常用表(例如tbl_users,tbl_facilities等)。我一直在使用模式对象的应用程序前缀来直观地将它们与其他应用程序对象分开,例如:
我从来没有对此感到满意,总觉得我应该使用单独的模式;每个逻辑应用程序一个,然后是共享对象的共享模式(用户表等)
分享公共表格非常重要,我不想放弃。
我已经为这个主题做了一些谷歌搜索,但没有找到任何真正解释的,如果这是一个好的做法。我希望你们中的一些专业人士可以就像我这样的情况的最佳做法向我提出建议。
答案 0 :(得分:2)
实际上,共享表并不是一个很好的行为。
但是,如果您确实需要,可以为每个应用程序创建不同的模式,并创建一个公共模式shared_schema。
公共模式可以包含共享表。
然后,在每个应用程序架构中,您可以为要从共享架构连接的每个表创建mysql views。您可以使用此架构中所需的名称命名每个视图。 现在,您可以使用不同的名称描述表。
答案 1 :(得分:0)
老实说,除非有令人信服的理由共享一个数据库,否则每个应用程序只能拥有一个数据库?
你已经说过他们'共享'表了,但是你已经描述了不同名称的表名,这表明虽然它们共享相同的结构,但它们实际上并不共享数据。 除非我误解了一些事情,否则我建议每个应用程序有一个数据库。这样,您还可以将数据库和应用程序移动到新位置,而无需将其与服务器上的其他应用程序分离。