将数组保存为字符串或使用多个表?

时间:2014-01-08 11:55:18

标签: mysql database postgresql database-design

我是数据库设计的新手,我特别使用php和laravel作为我的数据库层。

我想让人们创建和保存培训计划。每个项目可以有多个星期,每周有7天,每天可以有很多培训课程,每个阶段有3个阶段,每个阶段有很多例外。

我已经有一个excersises表,我最初认为我应该只构建一个数据数组并存储该数组,不幸的是mysql不支持数组,所以它必须作为字符串存储在program表中。现在我想,也许每个对象(周,日,会话)的表格都可能是一种更好的方式。

在不久的将来,我希望人们能够将每个例外/会话/日/周标记为已完成,以便哪种解决方案可以使这更容易?

如果数组是最好的选择,我应该从mysql切换到postgres的数组功能,还是将它保存为字符串接受的练习?

由于

2 个答案:

答案 0 :(得分:2)

在我看来,最好使用多个表而不是将数组存储为字符串。

  • 想到你的需求
  • 计划您的数据库设计,以便将来如果您想在表格中添加一些表格或列,则不会遇到任何困难。我也建议你规范化你的数据库。这里有一些关于数据库规范化的好链接。 Normalization of databaseFour ways to normalize your database

答案 1 :(得分:1)

优良作法是为每个表使用不同的表,如周,日,会话,阶段,练习。根据您的需要,您可以考虑另一个选项,如Mongo DB。