自然键与代理键
身为数据库设计人员,你将面临的首要决定是你的表应使用哪种主键(PK)。如果你询问任何每天处理数据库的人,无论是数据库管理员、开发人员还是测试人员,你都会得到无数的意见和理由。使解决问题的障碍更加复杂的是,没有一种万能的解决方案。有鉴于此,本系列将介绍支持和反对不同类型 PK 的一些原因。在所有这些原因的某处,将会引导你找出 PK 的最佳类型,以满足你的组织需求。在第一部分中,我们将比较两种基本类型的 PK:自然键和代理键。稍后,我们将讨论是否使用数据库自动递增功能,以及哪些数据类型(如果有)是最好的 PK。
应用程序开发人员长期以来一直相信将数据库操作放在存储过程中可以得到最佳性能并防止 SQL 注入攻击。他们还认为这些优势值得他们付出与数据库逻辑维护、测试和将数据库逻辑迁移到不同供应商相关的额外成本。近年来,随着开发人员开始质疑这些长久以来的假设,潮流已经从存储过程转向对象关系映射(ORM),例如 Hibernate 或 Entity Framework。
《存储过程是过时的工具吗?》文章重点讲述了一些避免存储过程而支持应用程序代码和 ORM 的原因。本周,我们将探讨上面的两个迷思,看看它们今天是否仍然经得起推敲。
存储过程已经在一些组织中失宠了好几年了。现在这些企业访问其数据库的首选方法是使用对象关系映射(Object Relational Mapper,简称 ORM),例如 NHibernate 或 Entity Framework。在接下来的几篇文章中,我们将探讨他们这样做的原因,以及这种模式转变是否表示存储过程的最终会被淘汰。
跟踪销售指标是了解你的业务的一部分,例如销量和找出最佳客户。为此,你可能希望首先获取有关在整个月、季度、年度或其他时间段内购买最多的客户的数据。这些数据能让你分析他们的购买模式并确定趋势。本文将通过将非常有用的 Count() 函数与 GROUP BY 和 HAVING 子句相结合来提供一些示例查询。
从表中仅选择奇数行或偶数行听起来像是你永远不必做的事情,除非你自行这样做。在谷歌快速搜索一下,可以证实这事情是经常有人会做的,但是,很少有数据库从业者知道如何做,他们总是在线数据库社区求助寻找答案。作为本文的读者,你可以省去在数据库论坛中寻找解决方案的麻烦,因为我们今天将在这里直接说明如何能做到。
- 2024 (1)
- 2023 (1)
- 2022 (1)
- 2021 (1)
- 2020 (1)
- 2019 (1)
- 2018 (1)
- 2017 (1)