[操作疑難] Relational Database 點樣表達無限 nested structure

好似以下果種,   唔可以愈先設定table可以食得落幾多層nested,   因為愈先唔會知有多層
例如, 主題1
                     回履
                             回回履     
主題2
             回履
                       回回履   
                                    回回回履  
                       回回履
             回履


{
   "root1":[
      {
         "optionA":[
            {
               "optionA_A":[
                  {
                     "optionA_A_A":[

                     ]
                  }
               ]
            }
         ]
      }
   ]
}

好似以下果種,   唔可以愈先設定table可以食得落幾多層nested,   因為愈先唔會知有多層
例如, 主題1
      ...
twaiho2003 發表於 2016-1-8 21:46



   
subject
ID | subject_content |
1      主題1
2       主題2

response
ID | subject_ID | order | content
1       1                      1         回履
2        1                      2          回回履  
3        2                      1         回履
.
.
.
.
  how do you think it?

TOP

subject
ID | subject_content |
1      主題1
2       主題2

response
ID | subject_ID  | content
1       1                       回履
2        1                      回回履  
3        2                      回履


ORDER BY ID ASC 搞掂

TOP

本帖最後由 twaiho2003 於 2016-1-8 22:32 編輯

回#2#3
你地個設計係咪會    "回回履" 會包含埋 "回履" D內容"?
否則就唔知回緊邊個

如果個情況改一改
當我係VM SERVICE PROVIDER,  因為以下果D唔係回履, 要重用, 可以點做, 我諗到頭到爆
Plan A
VM
                Linux
                          HttpServer  (3揀1)
                                      Apache
                                                2.4
                                                 2.3
                                      Nginx
                          Interpreter  (3揀1)
                                  Php
                                         5.6
                                          7.0
                                  Python
                           Database
                             ...
                            ...
                           Desktop Environment( 5揀2)
                              .. ..
                               .....
                Windows
                          HttpServer
                                      Apache
                                                2.4
                                                 2.3
                                      Nginx
                          Interpreter
                                  Php
                                         5.6
                                          7.0
                                  Python
                              Database
                               ...

TOP

本帖最後由 rkkc 於 2016-1-8 22:54 編輯

self recursion: itemtree(id, parent_id, item_id), item(id, {item_type}, description, ...)
itemtree( 0, 0, 0 )
itemtree( 1, 0, 1 )
itemtree( 2, 1, 2 )
itemtree( 3, 2, 3 )

item( 0, "VM", ... )
item( 1, "Linux", ... )
item( 2, "HttpServer  (3揀1)", ... )
item( 3, "Apache", ... )

itemtree 的 parent_id 是指去另一個 itemtree,id == parent_id 是 root,item_id 是 foreign key 指去 item,item_id 可以重複出現;
item 可以加 item_type 用 business logic 限制哪些 type 可以做 parent。

TOP

回覆 5# rkkc


    我都係諗到呢到停左,   
3揀1,  5揀2(不可重履),  5揀2(可重履),  可以用input type(radio button, checkbox, dropdown)
不過input type 呢個field 又係諗唔到加去邊
跟住有 d item 好似 vm  (root node), 有baseprice ,   
有d item, 好似 windows,   有additional price
又唔知呢D  field 加去邊

TOP

本帖最後由 rkkc 於 2016-1-9 01:01 編輯

itemtree( id, parent_id, item_id, itemlogic_id )
item( id, description, ... )
itemlogic( id, logic_script, description, ... )
每個 itemlogic 代表各種限制,直接將各種 business logic 用就手的 scripting language 存進 logic_script。
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

TOP

回覆 7# rkkc


    唔該曬你, 我仲理解緊

TOP

回覆  rkkc


    唔該曬你, 我仲理解緊
twaiho2003 發表於 2016-1-8 23:26



    Please choose my solution. It is best

TOP

回覆 8# twaiho2003

7# 已修改,itemtree 是 organizer,item 只是個 list of items,itemlogic 是 rules 用來 evaluate parent-child relationship,放 itemlogic 在 itemtree 表示相同 item 在不同的 tree node 有特定的限制。

TOP