【问题标题】:Save an array as a string or use multiple tables?将数组保存为字符串或使用多个表?
【发布时间】:2014-01-08 11:55:17
【问题描述】:

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

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

我已经有一个 excersises 表,我最初认为我应该只构建一个数据数组并存储该数组,不幸的是 mysql 不支持数组,因此它必须作为字符串存储在程序表中。现在我在想,也许每个对象(周、天、会话)都以某种方式与程序表相关,这可能是一个更好的方法。

在不久的将来,我希望人们能够将每个练习/会话/天/周标记为已完成,那么哪种解决方案可能会更容易?

如果数组是最好的选择,我应该从 mysql 切换到 postgres 以获得数组功能还是将其保存为字符串接受的做法?

谢谢

【问题讨论】:

    标签: mysql database postgresql database-design


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      最好为每个表使用不同的表,例如周、天、会话、阶段、练习。根据您的需要,您可以考虑使用其他选项,例如 Mongo DB。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-08
        • 1970-01-01
        • 1970-01-01
        • 2013-11-14
        • 1970-01-01
        • 2019-10-11
        相关资源
        最近更新 更多