gpt4 book ai didi

database - 如何在糟糕的数据库之上构建良好的 API?

转载 作者:太空狗 更新时间:2023-10-30 01:54:05 24 4
gpt4 key购买 nike

我有一个设计糟糕的数据库。由于各种原因,它需要保持这种状态。

根据我的经验,我喜欢像 ActiveRecord 这样的 ORM,但只将它们用于没有现有数据库的新项目。

有没有一种方法可以在不更改设计糟糕的数据库的情况下使用 ActiveRecord 样式的 ORM 构建良好的数据模型?

最佳答案

其他人已经谈到了这方面的技术方面,所以我想补充另一个观点:

暂时停止倾听您的二元感受,并尝试关注使用当前设计对现实世界的影响。如果以它为起点,您究竟会遇到哪些问题?

  • 这会使您的项目需要更长的时间才能完成吗?
  • 是否需要更多人手?
  • 是否需要特殊能力才能与之合作?
  • 它会危害数据质量吗?
  • 它是否使维护变得更加困难?
  • 它会对性能产生严重影响吗?
  • 这对您之后的下一个项目有什么影响?

  • 需要做什么才能从当前状态移动到您想要的状态
  • 这样做的成本是多少
  • 如果您首先必须修复设计,对您当前的项目有何影响?

因为最终,这种东西才是最重要的。如果你不能“推销”设计糟糕的想法,那么它真的不是,你只是在提示那些对我们这些同样生活在二进制世界中的极客们以外的任何人都无关紧要的东西 不(好)= 坏

确定这个 bigint 列可以用 tinyint 替换,那些列应该被移动到另一个表,这段重复的逻辑可以隐藏在一些 View /函数后面,而且这个 API 会比必要的慢,但这些都是蹩脚的细节,在非二元世界中可能重要也可能不重要。

我在工作中有一张最讨厌的 table 。大约 1% 的数据是不一致的,完全是错误的。清理这最后 1% 的成本将是巨大的(来自多个系统的合并数据),并且错误在聚合时甚至不会显示在小数位中。其实是出了问题。我无法向表中添加特定约束。因此,我必须向使用它的 2 个程序添加一个 where 谓词。我曾多次尝试提出修复它的理由,但没有人愿意投资于不成问题的东西。我同意他们的看法。

关于database - 如何在糟糕的数据库之上构建良好的 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5601016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com