创建MySQL数据库的最佳方式?表或单独的数据库



希望有人能回答我提出的这个相当简单的问题。我刚刚开始使用MySQL&phpMyAdmin为服务器创建后端数据库,我正在努力找出为该服务器创建数据库索引的最佳方法。主数据库将保存以下表格;音乐,视频,医生&文件。(音乐)区可容纳(5)张桌子。(视频)部分将容纳(4)张桌子。(文档和文件)将容纳大约(5)张表格。

我的问题如下:;有什么更好的方法,为上面的每一个单独的数据库,或者我应该把这14个表放在主索引数据库中?

我的另一个问题是,我可以创建一个索引数据库吗?它将包括(FK)到所有其他表,用于查询&文件搜索?

如有任何信息,我们将不胜感激。感谢

在我看来,最好将所有内容放在一起,并用前缀命名。作为

video_table1
video_table2
....

这样就不会连接到其他dbs。只有当所有表都用于同一个应用程序时,我的答案才适用,否则请执行单独的dbs-

Can I create a index database which would include (FK)'s to all the other tables to use for querying & file searching?

如果您使用的是InnoDB。是的!

如果希望在两个表之间建立外键关系,则应将两个表放在同一数据库中。基本上,单个ERD(实体关系图)的所有内容都应该保存在同一个数据库中。

我对您的设置有点怀疑,但我需要更多的细节。至于你关于多个数据库与单个数据库的具体问题,除了对非常大的数据库的一些可能的大小限制之外,我认为实际上没有任何区别。也就是说,选择最适合你的。您可能更喜欢组织多个数据库,也可能希望将它们保存在一个数据库中。如果使用多个数据库,则无法同时对所有表执行数据库范围的操作(DROP DATABASEmysqldump和表)。外键可以跨数据库存在。

至于你关于"索引数据库"的问题,我不完全确定我是否理解,这可能取决于情况。您可以有一个Files表,其中包含文件类型(视频、音乐)的外键,并使您的数据库更加通用。

嗯,这在很大程度上取决于您的项目实际需要什么。这些部分会相互作用吗(例如,音乐可以转换为视频吗?)?

如果答案是YES->对所有表使用一个数据库;如果答案是否定的->您可以为每个"部分"设置单独的数据库;

如果目标是:

  1. 单个应用程序
  2. 您希望将所有这些表中的数据组合起来
  3. 您预计不会将这些功能分解为部署在不同环境中的不同应用程序:

单个数据库很好/可能是最好的。如果上面任何一个问题的答案都是否定的,那么您可能仍然想要一个数据库,但可能需要做更多的工作。

关于第二个问题,如何将(对象?)映射到数据库的结构取决于您将如何使用它们,在某种程度上取决于您打算用于开发应用程序的语言和(更重要的是-框架)。如果您希望在应用程序中将这些建模为不同类型的超类file,您可能希望了解如何构建表的不同面向对象方法(例如,按类型表、按层次结构表)。

例如,公共字段可以在基表Files中,类型特定的数据可以在表AudioFiles中。AudioFiles的主键将是Files 的外键

相关内容

最新更新