我正在使用MySQL,但這是一般的關係數據庫查詢。HAS_MANY與主數據庫的關係數據庫設計BELONGS_TO
我們有一個博客CMS,用戶可以在上線後更改博客的URL,並且我們想301將舊博客URL更改爲新博客。
我下面兩個表選項之間徘徊(所有領域NOT NULL):
選項1 - HAS_MANY原發性標誌
網址
- ID(PK )
- url(UNIQUE)
- blog_id(FK博客 - ID)
- is_primary(0或1)
博客
- ID(PK)
- ... 等領域 ...
缺點:可能的完整性問題其中博客沒有或多個主要網址。
優點:許多或一個類似的關係結構。
選項2 - HAS_MANY和belongs_to的混合
URL
- ID(PK)
- URL(唯一的)
- blog_id(FK博客 - 編號)
博客
- ID(PK)
- url_id(FK到主網址 - ID)
- ... other_fields ...
缺點:可能的完整性問題博客的url_id和url的blog_id不匹配。
優點:保證每個博客一個主網址。
有沒有人有任何這些選項的經驗,或可以想到任何其他原因使用/打折一個或另一個?或者可能是更好的第三種選擇?
UPDATE
剛剛意識到選項2呈現的INSERT語句中不可能沒有允許空無論是在URL的blog_id或博客的url_id。
什麼是'primary_flag'? –
@RickJames要指示當前的活動URL,可能是一個令人困惑的術語可供選擇。 – Arth