我在規劃我的MySQL數據庫的以下情形的過程 -使用0/NULL值標準化還是可以設計得更好?
我試圖建立由遊戲系統,比如NBA的一齣戲,其中,事件如
Play event[id, play_type_id, play_outcome_id, points]
Substitution event[id, player1_in_id, player2_out_id]
Foul event[id, foul_type_id, player_id]
在主play_by_play記分卡特定事件應該用特定的時間和比賽
Play_by_Play[id, match_id, time_id, play_event_id, substitution_event_id, foul_event_id]
但是假設在一個特定分鐘只有三個事件之一即告發生─只有一個事件記錄了三個將有ID,和OT鏈接她的將是0或NULL。我留下的問題是這個設計的正常化還是有更好的方法來做到這一點?
對於play_by_play記分卡,您需要連接表格並獲取所需的數據。這應該是一個觀點,而不是一張桌子。 –
謝謝你的回覆,你說得對,我可以加入表格。然而,我的問題是,如果我必須插入Play by Play記錄,它看起來像這樣[1,10,5,0,1,0]意味着其中只有一個事件在特定時間獲得記錄,並且我被迫進入0代表其他事件。你能否建議我如何使這個設計更好? – siva
你不應該有一張桌子叫做玩,對不起,我不明白一個籃球遊戲是如何工作的,但是你應該用一種插入方式來分割你的桌子,只有一個插入只能處理一種類型的事件,並且隻影響事件發生的桌子與之相關,如果你有一張不符合商業模式的表,那麼它不是正確的模式。 –