代码之家  ›  专栏  ›  技术社区  ›  Itay Moav -Malimovka

如何将数据库中的枚举与PHP代码同步?

  •  5
  • Itay Moav -Malimovka  · 技术社区  · 14 年前

    一个有几百个表的数据库中通常会定义更多的枚举/集合。
    如何将PHP代码与枚举值同步,以避免在代码中使用字符串文字(我们都知道这似乎更容易,但从长远来看会导致愚蠢的错误)。
    我能想到的唯一好的解决方案是,在项目的构建过程中,使用一个为数据库中的所有枚举生成常量的过程,或者使用这些值创建并编译一个PHP扩展。
    还有其他更好的解决方案吗?

    1 回复  |  直到 4 年前
        1
  •  3
  •   Victor Nicollet    14 年前

    正如柏拉图所说:要么PHP和SQL是独立的,要么SQL是从PHP生成的,要么PHP是从SQL生成的,要么两者都是从同一个源生成的。

    如果发生了很多变化,第一种情况通常是不可接受的,但在其他方面相当稳定。

    第二个问题是最近的一系列解决方案会发生什么,这些解决方案从PHP端管理SQL(并优雅地处理PHP端的模式更改)。这意味着你的疯狂SQL忍者技能可能是无用的 而且令人沮丧 .

    第三个是你的建议。只要您可以管理“在构建期间生成”的部分,而不必触碰源代码控制系统和包系统,就可以了。拥有一个干净的构建系统会有所帮助(这在PHP中有些不同寻常)。

    第四个涉及调整现有的数据库建模工具,以生成SQL模式和PHP代码。这样,您只需每两周使用该工具一次,生成PHP和SQL,并提交结果。然而,调整这个工具可能非常麻烦(然后,您可以尝试寻找XML导出,并从那里开始工作)。