我创建了如下所示的实体关系图(ERD)(为简洁起见,每个单独的气泡形框都描绘了多个属性):
考虑到这样的 ERD,我必须将其中描述的每个实体类型或关联实体类型转换为与其对应的属性名称的关系,但我遇到了一些问题。
我通常表示一个关系如下:
X = (a, b, c)
* *如果X
是名称的的关系和a
,b
和c
是名字它的属性。
然后,在我正在研究的业务领域中,aCourse
依赖于零对多 (0:M) 其他Courses
(如 ERD 中所示)。这意味着 aCourse
应该以某种方式连接到Courses
它所依赖的。
那么,我如何将这种情况表示为(数学)关系?
选项1
我尝试了以下方法:
Course = (course_number, course_name, course_dependencies?)
选项 2
我认为可以用另一种方式描述所需的方面,例如:
Depends = (course_name)
进而
Course = (course_number, course_name, depends) …
schema erd database-design relational-theory database-diagrams
假设我想找到收入比 Google 的所有员工都多的所有员工,是否可以将 max 的结果用作单个值而不是像这样的表?
select person-name
from Works
where salary > ( select max(salary)
from Works
where company-name == "Google" )
Run Code Online (Sandbox Code Playgroud)
(作品有人名、薪水和公司名列)
我正在尝试进行查询,其中我将拥有 id 和该人是他们的上司的员工人数,还有不是经理的人,应该出现并且计数为零。
这就是我所做的,但那些不是经理的人显示为空:
create view scnt as (
select E1.super, count(distinct E1.id) cnt
from Employee E1 left outer join Employee E2
on E1.super = E2.id
group by E1.super
);
create view numSuper as (
select E.id, S.cnt
from Employee E left outer join scnt S
on S.super = E.id or E.id = null
);
select * from numSuper
Run Code Online (Sandbox Code Playgroud)
这是架构:
但是我们可以忽略所有噪音并使用我们需要的东西: employee(id, super)
这是插入的小提琴:http : //dbfiddle.uk/? rdbms=postgres_9.6&fiddle= 4c08869d0e8eba6c82fd4957092379a1
关于如何做到这一点的任何想法?