我有很多行爲的故事。這些行爲不是連續的(我不知道哪一個是第一個行爲或第二個,第三個等等)。數據庫設計問題
每個故事都以挑戰結束。
,以表示我已經使用了下面的表格關係數據庫中的所有:
Story
---------------------------------------
Id | PK
Name | String
FirstActId | FK to ACT table
Act
---------------------------------------
Id | PK
StoryId | FK to STORY table
Name | String
Description | Very long string
NextActionType | FK to ACTIONTYPE table
NextId | Its value depends on NextActionType
ActionType
---------------------------------------
Id | PK
Name | Values= 'Act', 'Challenge', 'Story'.
Challenge
---------------------------------------
Id | PK
Name | String
Description | Very long string
NextActionType | FK to ACTIONTYPE table
NextId | Its value depends on NextActionType
我用Story.FirstActId
知道這是故事的第一幕(我想說,"Select MIN(Id) from Act where StoryId = ?"
不起作用)。
然後,我用Act.NextId
知道該行爲之後應該採取哪種行爲或挑戰。 Act.NextId
可以是一個行動PK或一個挑戰PK或一個故事PK。這取決於Act.NextActionType
的值。
您認爲如何?這是一個好的設計嗎?
我的問題是我有挑戰表與任何其他表沒有任何關係。
UPDATE
換句話說,我需要一個系統,要知道接下來要去哪裏。我將有以下幾種情況:
故事 - > ACT->挑戰 - >行爲 - >新的故事 故事 - > ACT-> challente->新的故事
注意:行爲可以比更一。
如果您不知道哪種行爲是第一次,第二次等,您如何存儲FirstActId? – 2011-04-27 13:25:26
我知道哪個行爲是我添加故事和行爲時的第一行爲。我試圖說:「從Story中選擇MIN(Id)where StoryId =?」不起作用。 – VansFannel 2011-04-27 13:27:19