我即将改变一个大型系统中的几个表,我可能只能理解大约10%。
我想添加三列。其中之一就是重命名现有列。我的一部分想要: -
重命名专栏但担心 对未知部分的影响 使用旧名称的系统。
将三列附加到表中 因此制作旧栏目 多余的(随着时间的推移)。
答案 0 :(得分:4)
如果真的必须这样做,肯定会选择第二个选项。
为了记录,我认为对你不理解的数据库进行结构更改是灾难的一个方法,祝你好运!
答案 1 :(得分:1)
在源代码中搜索您要重命名的列的引用 我假设所有源代码都在某个源代码库中。 (包括SQL脚本。)。
如果您发现任何问题,则需要更改它们并测试该功能。
此外,在进行这些更改后,我会在测试环境中提供与此相关的功能。
如果你不这样做,你应该选择第二种选择。
答案 2 :(得分:0)
理想的解决方案:了解剩下的90%的系统:)
我会添加两个新列,并按原样保留OLD拼写错误的列。即使您的新逻辑使用新的(固定)列,旧报告又如何呢?旧逻辑?旧的插入/更新语句?
答案 3 :(得分:0)
如果您不理解数据库架构,请勿重命名。谁知道你会破坏什么:)
一个(稍微疯狂)选项是添加基本上只是重命名的列,将当前数据复制到它,然后重新设计原始列,使其成为返回新列值的计算字段
这样你就可以重命名,但你不会删除旧列。
更安全的赌注是扭转局面。将您的新列设为一个计算值,只读取旧列并完成它:)
或者,您可以创建一个可以执行相同操作的视图。
答案 4 :(得分:0)
我认为最安全的方法是创建新表并创建新的存储过程和方法。
但是最好还是要了解整个系统......随着时间的推移,穿上这样的绷带会变得很乱。
创建新表,存储过程和方法比添加/修改现有内容更简洁。
编辑:我曾经在一些有同样问题的网络应用上工作过。我之前的多个开发人员以他们自己的风格添加和修改了一堆东西。我认为你的情况类似。 像我说的那样。最好的方法是了解整个系统并进行修改。但如果你不能,我发现添加新模块而不是修改现有模块会更好。当出现问题时,很容易将其拔掉。此外,至少现在您确切知道您的模块是如何工作的。如果现有的应用程序写得很好并且易于扩展,我认为你不会在这里提出这个问题。
所以..我最后的想法。
答案 5 :(得分:0)
你知道,我已经开发了一个系统,我们刚刚离开旧系统,然后添加了新的和未使用的系统。从长远来看,这会造成更大的混乱,而不是进行更改,然后将所有引用更改为旧结构。所以现在他们有一个系统,他们根本无法标准化任何新的东西,因为有四种不同的结构用于存储扬声器信息和两种不同的结构来存储代表信息等。所以每一个微小的变化都必须由客户定制,将来要难以维护。这不是有效或有效的,维护成本会高得多。咬紧牙关,找出会受到什么影响,然后立刻改变一切。
答案 6 :(得分:0)