【问题标题】:Separate database table for user?为用户单独的数据库表?
【发布时间】:2013-10-21 18:32:24
【问题描述】:

这是一个新手的问​​题。我需要为每个用户存储音乐数据(URL,艺术家...)。我是否应该将所有数据放在一个表中,每个用户都有不同的键。或者,为每个用户设置单独的表可能是个好主意。 我正在制作一个在线播放器。 在此先感谢

【问题讨论】:

  • 除非您限制查看某些内容的权限,否则为每个不同的用户创建一个表格几乎不是一个好主意。
  • 投票结束为“过于广泛”。读一本关于数据库设计的书……
  • 我问的原因是这个。如果每个人的音乐数据都在一个表中,性能可能会下降,因为该表每天将被访问数千次,并且每个用户将遍历整个数据库。还是我错过了什么?

标签: mysql database optimization


【解决方案1】:

如果你要为每个用户创建单独的表,你将创建一个巨大的数据库,创建一个表结构,将所有用户的条目包含在单个表中......

【讨论】:

    【解决方案2】:

    为 ex create an 创建一个具有不同用户权限的表 分组列表并为不同的用户提供不同的组 例如groupid =1 管理员,2 普通用户等。

    【讨论】:

      【解决方案3】:

      为每个用户单独的表是不合适的。

      您需要一张表来存储音乐数据(URL、艺术家……)。

      如果您存储的关于用户的唯一项目是姓名,您也可以将其放入音乐数据表中,而不会过多地违反数据库设计原则。

      一旦您存储了有关用户的其他信息(例如密码、电子邮件地址),您就需要另一个用户数据表,并通过音乐数据表中的外键将音乐数据连接到用户数据(或,如果是 n:m 关系,则为第三个表)。

      如果您正在寻找有关数据库设计的更多信息,关键字是功能依赖规范化

      【讨论】:

        【解决方案4】:

        增强的关系图可以帮助您设计数据库。在您实施这些图表之前,可能值得使用这些图表来绘制您建议的数据库。 这是一个很好的工具,可以确保您拥有正确的数据库设计,并且如前所述,可以处理功能依赖和规范化。

        如果您以前没有这样做过,这是一个可以帮助您的好网站:http://users.csc.calpoly.edu/~jdalbey/205/Lectures/HOWTO-ERD.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-09-05
          • 1970-01-01
          • 2013-12-13
          • 1970-01-01
          • 2020-07-16
          • 2021-11-14
          • 1970-01-01
          • 2016-07-25
          相关资源
          最近更新 更多