动态生成数据表的列有什么隐患吗?

某个后端程序,设计为:根据需要,动态在数据库里生成列。请教这样做是否稳妥?

阅读 1.7k
1 个回答

不太稳妥,DDL 一般在大型的运维管理平台都是属于被禁止的存在,大部分都是只给应用用户读写权限,如果你实在是需要,应该可以在平台中申请仅是某张表的 DDL 权限。

如果你的动态列的数量是固定的,你可以提前增加一些列,例如 col1 col2 col3 ... colN,然后在另外一张表中保存映射关系。

有什么隐患

对于单个项目来说,实际上隐患不大,哪个好用就用什么。

但是如果多项目管理的角度去看隐患比较大,你可以设身处地的想一下,在你的手中管理了上百个项目,出现的问题是非常多的,随意的开放表结构的修改权限就是风险之一。

评论中有提到使用 nosql,这是解决方法之一,但是我不是很赞同。
首先要理解不同的项目在不同的环境中的难处,一些技术不是说换就换的,在完全正规严格的管理环境中,增加或者更换技术是需要进行大量评审的。
另外还需要考虑到增加技术栈带来的运维压力、维护成本、开发成本,还要承担在你没有完全掌握这个技术的情况下带来的未知风险。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题