sql - oracle sql中表示泛化

标签 sql oracle database-design

我正在尝试将类图(光盘租赁商店的学校项目)翻译为 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内联DiscMusic

Disc 中的 type 将帮助您在 Disc 抽象级别工作时进行 Disc 列表和过滤。

关于sql - oracle sql中表示泛化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7028613/

相关文章:

sql - 奇怪的是规则适用于 PostgreSql 9.5/9.6 上的插入

sql - 将宏计算结果传递给运行时的推荐方法是什么?

java - 从 Oracle 迁移到 MySQL

mysql - 将HTML放入数据库字段是错误的吗?

php - 写入文件系统数据库中的现有文件

sql - 在哪里可以找到有关第六范式的信息

java.sql.SQLException : Duplicate entry for key when trying to insert in database from java 异常

mysql - 在 postgresql 中使用性能测量(从 mysql 到)优化查询

SQL:如何获得忽略空值的first_value 作为聚合?

mysql - 如何计算已执行的 SQL 查询的不同结果?