创建MySQL数据库的最佳方法?表还是单独的数据库?

创建MySQL数据库的最佳方法?表还是单独的数据库?,mysql,database,phpmyadmin,Mysql,Database,Phpmyadmin,希望有人能回答我这个相当直截了当的问题。我刚刚开始使用MySQL&phpMyAdmin为服务器创建后端数据库,我正在尝试找出为该服务器创建数据库索引的最佳方法。主数据库将保存以下表格;音乐、视频、文档和文件。 (音乐)区可容纳(5)张桌子。 (视频)部分将容纳(4)张桌子。 (文档和文件)将容纳大约(5)个表格 我的问题是:;更好的做法是,为上述每一个单独的数据库,还是将这14个表放在主索引数据库中 我的另一个问题是,我是否可以创建一个索引数据库,其中包含所有其他表的(FK),以用于查询和文件搜

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

我的问题是:;更好的做法是,为上述每一个单独的数据库,还是将这14个表放在主索引数据库中

我的另一个问题是,我是否可以创建一个索引数据库,其中包含所有其他表的(FK),以用于查询和文件搜索

任何信息都将不胜感激。
谢谢

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

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

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


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

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


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

在我的观点中,最好将所有文件都放在一起,并用前缀命名它们。作为

video_table1
video_table2
....
这样,您就不会与其他数据库建立连接。 我的答案仅适用于所有表都用于同一应用程序的情况,否则请使用单独的dbs

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

如果您使用的是InnoDB。对!

在我看来,尼翁最好把它们都放在一起,并用前缀命名。作为

video_table1
video_table2
....
这样,您就不会与其他数据库建立连接。 我的答案仅适用于所有表都用于同一应用程序的情况,否则请使用单独的dbs

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

如果您使用的是InnoDB。对!

这在很大程度上取决于你的项目实际需要什么。各部分之间是否会相互影响(例如,音乐是否可以转换为视频?)

如果答案是“是”->,则对所有表使用单个数据库;
如果答案是否->您可以为每个“部分”拥有单独的数据库

这在很大程度上取决于你的项目实际需要什么。各部分之间是否会相互影响(例如,音乐是否可以转换为视频?)

如果答案是“是”->,则对所有表使用单个数据库; 如果答案是否->您可以为每个“部分”拥有单独的数据库

如果目标是:

  • 一个应用程序
  • 您需要将所有这些表中的数据和
  • 您不希望将这些功能分解到部署在不同环境中的不同应用程序中:
  • 单个数据库很好/可能是最好的。如果以上任何问题的答案都是否定的,那么您可能仍然需要一个数据库,但可能需要做更多的工作

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

    例如,公共字段可以位于基本表
    文件中,特定类型的数据可以位于表
    音频文件中。如果目标是:

  • 一个应用程序
  • 您需要将所有这些表中的数据和
  • 您不希望将这些功能分解到部署在不同环境中的不同应用程序中:
  • 单个数据库很好/可能是最好的。如果以上任何问题的答案都是否定的,那么您可能仍然需要一个数据库,但可能需要做更多的工作

    关于第二个问题,如何将(对象?)映射到数据库的结构取决于您将如何使用它们,以及某种程度上取决于语言和(mor)