【发布时间】:2016-05-10 01:35:41
【问题描述】:
我有几个表:Accounts 和Employees,我正在尝试为Accounts 和Employees 之间的任何给定组合存储Rating 和Timestamp。对于给定的 Account + Employee 组合,同一时间戳不可能存在两个评级。
这是我目前所拥有的:
CREATE TABLE main_table (
_ID INTEGER PRIMARY KEY AUTOINCREMENT,
account_id INTEGER NOT NULL,
employee_id INTEGER NOT NULL,
rating REAL NOT NULL,
timestamp LONG NOT NULL,
FOREIGN KEY(account_id) REFERENCES ACCOUNTS(_ID),
FOREIGN KEY(employee_id) REFERENCES EMPLOYEES(_ID),
UNIQUE (account_id, employee_id, timestamp));
这是定义我要做什么的正确方法吗?我还需要创建一个单独的索引吗?
CREATE INDEX main_table_idx ON main_table (account_id, employee_id, timestamp);
【问题讨论】:
-
这是一个 java 还是 android 的问题?
-
表中的
UNIQUE索引有什么问题? -
@shmosel Idk 上次我没有说明我使用的是 Java/Android 我受到了责备,所以我现在总是包含它
-
我要冒昧地猜测上次 Java/Android 是相关的。
-
在我看来,上次也无关紧要,但你能做什么——有时 StackOverflow 是不可能取悦的。
标签: sqlite indexing foreign-keys unique-constraint