php - 基于数据库设计是否可以预测要在应用程序中使用的查询?

标签 php mysql database-design rdbms

假设我有这个 mysql 数据库,数据库中的所有表都相互关联,主键、外键等都已设置。现在是否可以仅从数据库设计中预测应用程序将使用哪些查询?由于数据库确实决定了应用程序的功能,因此从设计中,我们可以预测应用程序中将使用哪些查询,对吧?

如果可能,是否有策略或自动方式来生成可能的查询?

最佳答案

我写了一本关于使用 SQL 和 Excel 分析数据的书,并且在数据库方面工作了很多年。

是的,从数据库结构中,您可以弄清楚表将如何连接在一起。您不会弄清楚用户需要的更难(通常更业务相关)的东西。以下是一些示例:

您可以拥有一个数据库,其中的主表是电话,以及相关信息。从这个数据库中,您可能需要知道一次事件调用的最大数量。或者您可能需要知道某人在一个月内给多少不同的人打电话。

您可以拥有订阅者记录的数据库。您可能需要计算出某人在给定时间后停止的概率。

您可以拥有产品和购买的数据库。您可能需要找出同时出现的三种产品的最常见组合。

您可以拥有信用卡购买的数据库。您可能需要弄清楚谁在距其账单地址超过 50 英里的餐厅消费超过 200 美元。

重点是。数据库不代表“应用程序功能”。数据库代表实体和它们之间的关系,大概在现实世界中。认为您可以查看数据库并知道业务问题是什么的想法是狂妄自大的。

相反,数据库的目的是支持数据,而数据又支持应用程序。应用程序的需求会随着时间而改变。与许多其他数据存储技术不同,数据库的优点在于该技术随着数据的增加而扩展,支持结构的变化,并允许将新的实体和关系添加到系统中,而无需完全重写它。

随着时间的推移和经验的积累,您可能会对重要的事情产生直觉。即使您这样做了,您也会不断对用户的不同需求感到惊讶。

关于php - 基于数据库设计是否可以预测要在应用程序中使用的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11856603/

相关文章:

php - 使用php从网站中提取数据

php - 查询表中的行并显示特定行(如果它们存在于另一个表中)

MySQL CONCAT() 条件 NETBEANS 错误

mysql - NULL 或设置默认值

php - Mysql在哪里查询优化

php - 时间相加减去时间

php - 使用 PHP、Xpath 和/或 DOM 更改 HTML 内容

php - 将 MySQL 行转换为单独的数组

mysql - 使用笛卡尔坐标系定位地点的适当算法是什么

asp.net - 在 Web 应用程序之间传递 ID