这是我的小SQL表,其中包含续集的电影:
CREATE TABLE "films"
(
"title" TEXT NOT NULL,
"year" INTEGER NOT NULL,
"predecessor_title" TEXT NOT NULL,
"predecessor_year" INTEGER NOT NULL,
"increase" NUMERIC NOT NULL
)
以下是我的一些价值观:
Toy Story 2 1999 Toy Story 1995 28%
Toy Story 3 2010 Toy Story 2 1999 69%
如您所见,这有点多余。玩具总动员2作为标题和前任出现。如何创建一个没有这个的表?
答案 0 :(得分:2)
你可以:
---run procedure
SET SERVEROUTPUT ON;
begin
procedure_name(param1);
end;
---procedure output
anonymous block completed
sample procedure_name output
ID是主键。
PREDECESSOR_ID是前任电影的ID。可以为null,因为该系列的第一部电影没有前任。
增加是增加。可以为null,因为第一部电影没有增加。
答案 1 :(得分:1)
当你使用ORM(Hibernate)工具设计它时:
@Entity
public class Films{
@ID
@GeneratedValue
int id;
@NotNull
String titleText;
@NotNull
Integer year;
@JoinColumn
Film film;
Integer increase;
}
这看起来很酷。在这里你可以在Film film;
中保留前任的参考号,不管,如果没有前任那么重要。那就是null。