0

我想對設計表和MySQL數據庫的關係,我面臨着以下情況:SQL數據庫設計 - 一對多臨時限制

  • 我有一個標準incidences表,其id主鍵和其他一些領域。
  • 我也有另一個標準表叫reports,結構相同。

它們之間的關係應該是one to many即,從發生率n生成報告1)。但是,定義關係時會出現問題,因爲據我所知,我應該在incidences表中聲明report_id外鍵,但是發生在臨時報告之前,所以當我創建它們時,我還沒有那report_id信息...

有沒有人有這種情況的經驗?它通常如何解決?

任何幫助,非常感謝。 在此先感謝。

+1

您可以在創建報告後更新「發生率」表。或者如果一個事件可以是多個報告的一部分,則使用聯結表。 –

+1

一旦報告已知,請稍後更新report_id字段。雖然,我不太確定這個報告的含義:) – Shadow

+0

感謝這兩個,但外鍵不應該在數據庫中爲空或空作爲一個規則。那我該怎麼辦?用固定的數字填充,例如1,默認情況下?這聽起來有點笨重,不是嗎? :S – andcl

回答

0

FOREIGN KEYs不是最終全部是全部. Simply have the incidences.report_id column, and declare it NULL . When you get the report_id`然後填寫列。只有在必要的情況下,才能對incidences.report_id進行索引。