我正在做一個數據庫,並有一個表結構如下處理屬性本身具有屬性的標準方法?
Att1 Att2 Att3 ....
User1
User2
User3
....
,我想每一個屬性(ATT1,ATT2,ATT3,...)中有一個布爾變量連接到它。像下面這樣:
Att1 No
Att2 No
Att3 Yes
... ...
每個屬性是來自用戶的數值分數(上市首選項),但我想它是否真正重要與否來標記每個屬性。有沒有處理這種類型的依賴的標準方法?謝謝!
我正在做一個數據庫,並有一個表結構如下處理屬性本身具有屬性的標準方法?
Att1 Att2 Att3 ....
User1
User2
User3
....
,我想每一個屬性(ATT1,ATT2,ATT3,...)中有一個布爾變量連接到它。像下面這樣:
Att1 No
Att2 No
Att3 Yes
... ...
每個屬性是來自用戶的數值分數(上市首選項),但我想它是否真正重要與否來標記每個屬性。有沒有處理這種類型的依賴的標準方法?謝謝!
噢,如果我們可以在表格中嵌入記錄,這將是很好的。但是,標準SQL和大多數數據庫不支持這一點(雖然有例外)。
我會使用一致的命名約定,發明諸如「IsImportantAtt1」和「IsImportantAtt2」等字段。當我這樣做時,我也有一個約定,即所有的「Is」變量只取「Y」或「N」的值。如果我想在輸出中看到「是」和「否」,那麼我使用該轉換的視圖或在應用程序層中進行。
如果您使用的是MS SQL,那麼'Bit'類型對於標誌是理想的 – Jodrell
如果屬性本身不屬性,屬性的得分很重要嗎?如果沒有,你可以簡單地有一個約定,即NULL分數意味着屬性不重要。
否則,你可以爲每個屬性欄添加一個(布爾)柱:
Att1 Important1 Att2 Important2 Att3 Important3 ....
User1
User2
User3
....
順便說一句,在屬性固定的嗎?即你是否總是具有完全相同的一組屬性?如果沒有,你可以更好地通過EAV model服務(儘管某些缺點EAVS通常有):
一個不重要的屬性可以簡單地從USER_ATTRIBUTE表省略(假設「不」的答案是我的問題在頂部)。
這聽起來對我來說,Attribute
實際上是一個實體的呼叫ListingPreference
它有一個Id
鍵,2個屬性,Score
和IsImportant
和FK到User
稱爲UserID
。
User
currentley只有一個Id
鍵。
總之,屬性沒有屬性,這意味着你的模型是錯誤的。
你說得對。我認爲處理這種情況的標準方式是從來沒有進入過。我完全理解你在這裏的意思,如果我從頭開始,這將是一個更好的方式,但在我回到原點之前,我想我會按照@Gordon的建議重新命名這些字段。 – mstobb
你有沒有具體的例子ow什麼Att1,2和3實際上會被調用? – Jodrell
我認爲這對我的問題並不重要,但要澄清一些屬性可能是「Coffee」,「Tea」和「Creamer」,其中分數是每個用戶的偏好(從0到10)他們有庫存/可用。我想要做的就是回到事實之後 - 並且標記我們真正願意參與的重要事件。 – mstobb