Re: [請益] 程式架構
※ 引述《bobju (寶貝豬)》之銘言:
: 首先, 我想你所描述的'大分類'跟'子分類'應該就是'分類'及'項目'
: 的意思. 假設是如此, 以下我就用'分類'(class)及'項目'(item)來
: 進行描述.
: 這問題主要是對於不定數目或不定形態屬性的分類如何做規劃:
: 花跟水果這兩種分類的屬性不太一樣, 像花要登記產地,
: 水果要登記重量. 如果還有還有n種不同的分類,各有各的屬性群的話,
: 除了個別設計資料表外, 是還有另一種規劃方法, 但適不適合要看實際
: 需求.
: classes <= + = attributes <= +
: | + = attribute_values
: + = items <= +
: 這種規劃方式有點複雜, 雖可用來應付不定形態/數目屬性之類別的
: 規劃, 但開發初期的增/刪/改/查的操作模組需要花點功夫, 而且實務上
: 未必能夠符合你所要的(要進一步評估才行).
: classes
: id,name
: 1,水果
: 2,花
: items
: id,name,classes_id
: 1,西瓜,1
: 2,蘋果,1
: 3,櫻花,2
: 4,向日葵,2
: attributes
: id,classes_id,name
1,1,名稱 <==
: 2,1,重量
3,2,名稱 <==
這兩個抽象概念上完全一樣,連詞都一樣,已經重複了
要把attr分離出來可以,這樣讓attr保留了新增跟刪除
的彈性,但不要重複兩個一樣的東西(don't repeat ur self),
事實上,我覺得跟attr value合併是比較好的做法,因
為attr更像field
: 4,2,產地
: attribute_values
: id,items_id,attributes_id,value
1,1,1,'紅肉大西瓜' <==
2,1,2,10kg <==
sql應該還沒有動態型別的欄位吧,重量通常用integer之
類比較合適,名稱就是text之類的。
: 3,2,1,'富山蘋果'
: 4,2,2,100g
: 5,3,3,'日本櫻花'
: 6,3,4,'日本'
: 7,4,3,'美國向日葵'
: 8,4,4,'美國'
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.119.164.131
※ 編輯: superGA 來自: 140.119.164.131 (06/08 01:52)
※ 編輯: superGA 來自: 140.119.164.131 (06/08 01:56)
→
06/08 08:58, , 1F
06/08 08:58, 1F
→
06/08 08:59, , 2F
06/08 08:59, 2F
→
06/08 09:00, , 3F
06/08 09:00, 3F
→
06/08 09:01, , 4F
06/08 09:01, 4F
→
06/08 09:01, , 5F
06/08 09:01, 5F
→
06/08 09:01, , 6F
06/08 09:01, 6F
討論串 (同標題文章)