代码之家  ›  专栏  ›  技术社区  ›  Juddling

两个mysql表的合并和别名

  •  1
  • Juddling  · 技术社区  · 15 年前

    我有两张桌子: members members_data .
    它们都具有相同的唯一自动增量 id 关键与独特 username 领域。

    我想把这两张桌子合并成一张 成员 表, 但是 我有大约50个剧本 成员 和; 成员数据 参考文献。我还需要一些别名设置来 成员数据 查询指向新的 成员 表。

    这有可能吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   MarkR    15 年前

    通过创建只从另一个表中选择*的视图,可以有效地将一个表别名为另一个表。但是,这不是一件好事:

    • 它让未来的代码维护人员感到困惑,因为它有一个视图,而这个视图实际上是另一个表(当然,他们可以在源代码**中查看您的视图)。
    • 在某些情况下,优化程序可能效率低下。
    • 这不是重构事物的正确方式。

    然而,根据测试这些“50个脚本”的容易程度以及它们的关键程度(提示:非常关键的代码很难测试,这会对有效的开发造成真正的阻碍),创建视图可能是短期内要做的一件实际的事情(短期解决方案通常在实际应用中保持多年或永远不变)。离子)。

    如果以任何方式可行,我敦促您更改“50个脚本”,并进行发布此类更改所需的所有测试。在我们的团队中,我们已经进行了修改(在一个版本中),修改了很多超过“50个脚本”,但是测试当然是具有挑战性的(或者至少是耗时的)。

    随着应用程序越来越大、越来越复杂,回归测试变得越来越困难。尽可能多地考虑它是至关重要的,因为重构将变得必要(假设应用程序是完全开发或维护的),并且回归是不好的。

    **当然,所有的表、视图等都是脚本化的,并且都在源代码管理系统中!

        2
  •  0
  •   symcbean    15 年前

    它们都共享相同的唯一自动递增ID键和唯一用户名字段。

    这句话毫无意义。在MySQL(或大多数RDBMS中,两个表不能共享列)中没有任何方法。

    我怀疑你的问题可能有几个答案,但如果没有看到实际的模式,就很难判断。

    假设您的意思是这两个表都有一个用户名字段,这两个字段在两个表中都是唯一的,并且大小相同,并且两个表都有一个名为id的自动递增列,那么事情就更清楚了——在这种情况下,创建一个复合表来实现两个基础表中的列,将数据迁移到其中并repl将两个原始表与视图放在一起。

    C.