我正在尝试将类图(光盘租赁商店的学校项目)翻译为 sql,但我陷入了泛化关系。
我有 Disc 的父类和 Music、Movie 和 Game 的子类。 我如何在 sql (oracle) 中表示这些?
到目前为止我写的是:
CREATE TABLE Disc
(
disc_id numeric(10) not null,
disc_title varchar2(50) not null,
disc_cost numeric(10) not null
CONSTRAINT disc_pk PRIMARY KEY (disc_id)
);
--extends Disc
CREATE TABLE Music
(
);
但我不知道如何处理 Music 表,或者即使我走错了方向.. 或者即使我使用了错误的术语:P
任何帮助将不胜感激:)
最佳答案
去过那里,做到了。
Disc
中需要一个字段来指定类型(音乐、电影、...)
在音乐(或电影或...)中,您必须拥有 disc_id
,然后是音乐特定字段。
查询音乐时,通过disc_id
内联Disc
和Music
。
Disc
中的 type
将帮助您在 Disc 抽象级别工作时进行 Disc 列表和过滤。
关于sql - oracle sql中表示泛化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7028613/