2013-08-02 51 views
1

我有一個正在進行的網站,用戶在Feed中創建帖子,並且可能有很多Feed。他們的個人資料將顯示他們選擇的默認Feed。你如何解決關係數據庫悖論?

這個悖論中的3個表格是「賬戶」,「配置文件」和「提要」。 配置文件中的條目包含有關用戶的其他信息。這是在一個單獨的表中,因爲它可能會更頻繁地被修改,並且許多查詢使用帳戶表而不需要此信息。

帳戶(配置文件)中的字段必須引用配置文件。我這樣做,而不是有配置文件參考賬戶,因爲否則一個賬戶可能沒有配置文件存在。存在沒有帳戶的配置文件將是停用帳戶的結果(只要用戶明確選擇不從網站中刪除其配置文件)。

配置文件中的字段(default_feed)必須引用提要。這可能會經常更改,大多數查詢都不需要,所以這對於這些數據來說似乎是一個明智的地方。

Feed中的字段必須引用一個帳戶;所有提要都有創建者。

您可能已經看到我的問題了,但我會詳細說明: 如果沒有製作配置文件,我無法創建帳戶,但如果沒有製作配置文件,我無法創建帳戶,而我無法制作這些配置文件沒有賬戶,等等...

我必須放棄停用帳戶的配置文件的功能(這不會是一個巨大的交易,但我想知道如果有另一種方式),或者是否有一個明智的把戲,可以讓我解決這種關係的矛盾性質?

編輯:我意識到我可以簡單地設置default_feed字段,因此它被允許爲空,並讓應用程序處理這個特殊情況(不應該發生,因爲使用該帳戶創建的Feed) 「此用戶沒有默認提要」消息。我仍然想知道我是否錯過了更有創意的解決方案。

回答

2

打破依賴關係的一種簡單方法是使配置文件中的default_feed爲空。

  • 開始通過創建具有設置爲null
  • 創建引用該文件的帳戶默認飼料的輪廓。
  • 設置賬戶後,使用已創建爲所有者的賬戶創建默認提要。
+0

我編輯後一分鐘。這似乎是一個完美的解決方案。 –