我正在尝试开发一个 android 应用程序,用户可以在其中为 children 创建故事。我正在使用 Sqlite 创建我的数据库,我想知道我的关系数据库是否正常。
CREATE TABLE story (
storyID INTEGER PRIMARY KEY,
storyTitle TEXT
);
CREATE TABLE pages (
page INTEGER,
content TEXT,
storyID INTEGER
);
最佳答案
主键由一列或多列组成;这些列中的值唯一标识每一行。
表没有主键是没有意义的;这意味着无法区分行,即可以对任何随机行执行某些数据的操作。
你有一个主键;你只是不知道,你还没有告诉数据库。
在 pages
表中,页面内容由故事 ID 和故事内的页码标识。这意味着您有一个复合主键。要获得唯一性检查和自动索引,您应该告诉数据库:
CREATE TABLE pages (
storyID INTEGER,
page INTEGER,
content TEXT,
PRIMARY KEY (storyID, page)
);
关于sqlite - 没有主键的关系数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41663157/