我正在尝试设计一个数据库并编写一个 SQL 查询,以便根据某些可用的标准和选项对设备进行评分。
这里的标准例如:
- 硬件实力
- 软件安全
- 设备操作系统
Master
表中给出了每个条件的选项。根据每个选项,都有一个可用的分数。
我试图考虑使用连接的 SQL 查询,但由于我是一名 JavaScript 开发人员,所以完全无能为力。
这在单个 SQL 查询中是否可行?
最佳答案
如果你tidy up,你可以直接做到这一点你的数据库一点:
create table phones (
id SERIAL PRIMARY KEY,
model varchar(20) NOT NULL UNIQUE,
hardware_strength INT NOT NULL,
software_security INT NOT NULL,
os INT NOT NULL
);
create table hardware_strength (
id SERIAL PRIMARY KEY,
description varchar(20) NOT NULL UNIQUE,
score INT NOT NULL
);
create table software_security (
id SERIAL PRIMARY KEY,
description varchar(20) NOT NULL UNIQUE,
score INT NOT NULL
);
create table os (
id SERIAL PRIMARY KEY,
description varchar(20) NOT NULL UNIQUE,
score INT NOT NULL
);
有了这个模型,查询就很简单:
SELECT
a.*,
b.score + c.score + d.score as score
FROM phones a, hardware_strength b, software_security c, os d
WHERE
a.hardware_strength = b.id AND
a.software_security = c.id AND
a.os = d.id
;
你可以在这个sqlfiddle中玩它.
关于sql - 设计数据库并编写用于评分应用的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58506455/