声明约束以考虑编程逻辑

时间:2010-03-05 11:41:42

标签: mysql

我只能开一次旅行但可以多次关闭它。我不能将Trip_no +状态声明为主键,因为在关闭行程时可能有多个条目。有什么办法可以保证旅行号码只开一次吗?

例如3号行程不应该有第二行“开放”状态,因为它已经在下表中。

Trip No | Status
1     Open
1     Close
1     Close
2     Open
2     Close
3     Open
3     Close
3     Close
3     Close
3     Close

1 个答案:

答案 0 :(得分:0)

目前尚不清楚为什么每次旅行状态变更都有很多条目。

但假设您有其他列,例如“日期”,也许您可​​以在“旅行”表中存储“OpenDate”并使用其他表格TripCloses将仅包含旅行日期关闭。

或者,您可以使用两个表TripOpens和TripCloses,并对它们使用不同的约束。

换句话说,在不知道存储信息的细节的情况下很难建议