这是我的小 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
)
以下是我的一些值(value)观:
Toy Story 2 1999 Toy Story 1995 28%
Toy Story 3 2010 Toy Story 2 1999 69%
如您所见,它有些多余。玩具总动员 2 既作为标题又作为前身出现。我怎样才能创建一个没有这个的表?
最佳答案
你可以:
CREATE TABLE FILMS (
ID INTEGER NOT NULL PRIMARY KEY
TITLE TEXT NOT NULL,
YEAR INTEGER NOT NULL,
PREDECESSOR_ID INTEGER,
INCREASE NUMERIC
)
ID 是主键。
PREDECESSOR_ID 是前身电影的 ID。可以为空,因为该系列的第一部电影没有前任。
INCREASE 是增加。可以为空,因为第一部电影没有增加。
关于sql - 如何停止冗余,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43508350/