数据较少或列数较少且列数较多的列数较多?

时间:2011-06-04 20:36:22

标签: mysql sql

我想知道什么更好。

  1. 将所有数据(例如skype,icq,facebook,stackoverflow等等)保存在一列中
  2. 将数据保存在单独的列中(skype,icq,facebook,stackoverflow等分隔列)
  3. mysql服务器有什么好用的?

3 个答案:

答案 0 :(得分:4)

将它们全部保存在一列中会违反first normal form,并且难以查询和汇总数据。

使用一列存储每条信息。

如果您要为每项服务存储配置文件数据,您甚至可能更好地为每项服务使用单独的,并使用用户ID的外键。

答案 1 :(得分:2)

除了可能看起来抽象的关于规范化的讨论之外,提出正确的问题可以帮助明确为什么一种方法可能优于另一种方法。

  1. 您想查询特定帐户吗?例如,查找所有Skype帐户或查找特定的Skype帐户。你的两种方法中哪一种更容易?

  2. 如果其中一种帐户类型存储出现问题,您认为哪种方法更容易纠正?

  3. 您认为哪种方法更容易扩展帐户类型?例如,今天你为Skype,ICQ,Facebook和StackOverflow构建。明天,你意识到你想存储Twitter账户。你认为哪种方法会更容易?

  4. 您认为哪种方法对其他开发人员更容易掌握,维护和扩展?例如,您的系统变得如此受欢迎,以至于您雇用开发人员来接管您的工作。与其他开发人员相比,更符合行业最佳实践的方法将更容易理解。

  5. 当您分析这样的问题时,应该清楚的是,将信息存储到单独的列中,或者可能是一个包含帐户的表,其中每个用户可以有多个代表多个帐户的行,这是最好的方法。

答案 2 :(得分:1)

如果使用多列,您将获得更大的灵活性。

如果您想根据其中一个字段查询数据库,如果它们全部打包在一个列中将非常困难。它还使得维护数据库对您自己和任何追随您的人来说都更加困难。