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

时间:2013-09-04 14:45:56

标签: mysql database phpmyadmin

希望有人可以回答我这个相当直截了当的问题。我刚开始使用MySQL& phpMyAdmin用于为服务器创建后端数据库,我试图找出为该服务器创建数据库索引的最佳方法。主数据库将包含以下表格;音乐,视频,doc&文件。 (音乐)部分将保存(5)表。 (视频)部分将保存(4)表。 (doc& files)将保存(5)个表。

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

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

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

5 个答案:

答案 0 :(得分:1)

在我的观点中,最好将所有内容放在一起,并用前缀命名。如

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。 YES!

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

嗯,这很大程度上取决于你对项目实际需要什么。这些部分是否会彼此互动(例如,音乐是否可以与视频相关联?)?

如果答案是肯定的 - >对所有表使用单个数据库; 如果答案是否定的 - >每个“部分”都可以有单独的数据库;

答案 4 :(得分:0)

如果目标是:

  1. 一个应用
  2. 您想要合并所有这些表中的数据和
  3. 您预计不会将这些内容分开,以分离在不同环境中部署的应用程序:
  4. 单个数据库很好/可能最好。如果上述任何问题的答案都是肯定的,那么您可能仍然需要一个数据库,但可能需要做更多的工作。

    关于你的第二个问题,你如何将你的(对象?)映射到数据库的结构取决于你将如何使用它们,有些依赖于你打算用来开发你的语言和(更重要的是 - 框架)应用。如果您希望在应用程序中将这些模型建模为不同类型的超类file,您可能需要查看不同的面向对象的方法来构建表(例如Table-per-type, table-per-hierarchy)。

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

    的外键