Questions tagged «postgres»

22
存储过程是全球最大的IT软件咨询公司之一的不良做法?
我在全球三大IT咨询公司之一的一个项目中工作,一名DBA告诉我,公司的最佳实践的状态存储过程不是“最佳实践”。这与我学到的一切都太相反了。 存储过程为您提供代码重用和封装(软件开发的两个支柱),安全性(您可以为单个存储的proc授予/撤消权限),保护您免受SQL注入攻击并还有助于提高速度(尽管DBA表示从SQL Server 2008开始,即使常规SQL查询运行了足够的时间,它们也会被编译。 我们正在使用敏捷软件开发方法开发复杂的应用程序。任何人都可以考虑为什么不想使用存储的proc的充分理由吗?我的猜测是,DBA不想维护那些存储的proc,但是似乎有太多负面因素无法证明这种设计决策是正确的。

8
在数据库中存储可重新排序的列表
我正在开发一个愿望清单系统,该系统中用户可以将商品添加到他们的各种愿望清单中,并且我打算允许用户稍后重新订购这些商品。我不确定如何将其存储在数据库中同时保持快速且不会陷入混乱的最佳方法(此应用程序将由相当大的用户群使用,所以我不希望它崩溃清理东西)。 我最初尝试了一个position列,但是当您移动其他每个项目的位置值时,似乎效率很低。 我见过人们使用自引用来引用上一个(或下一个)值,但是同样,您似乎必须更新列表中的许多其他项。 我见过的另一种解决方案是使用十进制数字,并且仅将项目粘贴在它们之间的间隙中,这似乎是迄今为止最好的解决方案,但我敢肯定必须有更好的方法。 我要说的是,一个典型的列表最多可以包含20个左右的项目,并且我可能会将其限制为50个。重新排序将使用拖放操作,并且可能会分批进行以防止出现竞争情况,例如ajax请求。如果有关系,我正在使用postgres(在heroku上)。 有人有什么想法吗? 为任何帮助加油!


6
淘汰过时的数据库列的最佳实践是什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 我正在设计一个应用程序,它将在早期阶段从客户端收集数据A,B和C,但稍后将收集数据A,B和D。 A,B,C和D非常相关,现在作为单个数据库PostgreSQL表T的列存在。 一旦不再需要C,我想从我的应用程序中删除它的引用(我使用Django ORM),但是我想保留已经输入的数据。最好的方法是什么? 我曾考虑过为ABD创建一个新表,但这意味着可能会导致引用表T的任何行出现问题。 我可以只保留C列,并删除代码中对它的引用,以使现有数据得以保留。 有没有我看不到的更好的选择? 一些额外的细节: 行数不会很大,很可能每个用户1-2行。这是一个大众市场应用程序,但是当我从C切换到D时,用户群还不会很大。尽管有可能,但C和D可能不会同时收集。C和D可能分别代表多个列,而不仅仅是每个列。


5
我是否真的需要关系数据库的触发器,例如PostgreSQL?
我知道触发器可以用来验证存储的数据以保持数据库的一致性。但是,为什么不先在应用程序端对数据进行验证,然后再将其存储到数据库中呢? 例如,我们存储客户,并且我们想要执行一些在DDL级别上不容易完成的验证。 https://severalnines.com/blog/postgresql-triggers-and-stored-function-basics 另一个例子是审计。 更新资料 触发器和数据库事务如何一起工作。例如,如果我想对插入的数据进行验证。它是在事务内部完成的。之前发生了什么:事务已提交或触发器已执行?

9
是否有使用Mysql或PostgreSQL的大型银行?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我一直认为最大规模的银行使用Oracle。但是,没有证据表明他们真正使用Oracle而不是Mysql或PostgreSQL,没人知道这个秘密。 知道他们真正使用了什么吗?我可以使用Mysql建立一个可以进行数百万笔交易的ATM /银行系统吗?我可以使用PostgreSQL吗?还是只能使用Oracle?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.