我有以下表格:數據庫關係設計 - 在不同的表涉及兩個表兩次
Post
Id int
User
Id int
然後,我有表
Favorite
PostId int
UserId int
和表
Vote
PostId int
UserId int
IsUpVote bit
IsDownVote bit
LastActivity datetime2
的問題是,如果我將Favorite和Vote合併到一張表中,那麼我會有類似
UserPost
PostId int
UserId int
IsFavorited bit
IsUpVoted bit
IsDownVoted bit
LastActivity datetime2
IsDownVote
不能夠再計算(因爲現在,我不能用「不存在:沒有投票;沒票了起來:否決」的格局了)和LastActivity
只會反映最後一次投票已經改變(向上,向下,或刪除)所以我也許必須改變該字段的名稱或它的功能或。甚至兩者..
所以,問題是,基本上,如何錯是具有兩個與表A和B (Post,User)
在這種情況下,它們由相同的主鍵(PostId,UserId)
在這種情況下編入索引表,但其旨在用於不同用途?
-1什麼是難點是使用位值做計算/比較(你可以做整數)?!?是否有一些原因,你喜歡用4個字節而不是1位存儲位值? – PerformanceDBA 2010-11-10 06:12:45
他們在使用位值進行某些計算時遇到了麻煩,因此建議。我有我自己在我的日子實施了一個二進制編碼我的主要論文心電圖的標準,所以我沒有任何特別的問題。我的建議只是讓這個人跳過柵欄最低的地方,並解決他眼前的問題,同時要求他以第三方的正常形式閱讀,以使他的數據庫能夠進入正確的正常形式,有時候是最好的解決方案是一個快速解決方案,然後改進和重新考慮您的解決方案。 – 2010-11-10 19:34:55
沒錯。然後,在完成所有這些後,更改數據庫和應用程序代碼。那將是一件可怕的勞動。首先要正確建模數據庫,並避免所有重新工作。 – PerformanceDBA 2010-11-25 02:14:13