2020年5月13日 星期三

SC的 many - many 關係,有很好的現成設計,直接利用很方便

研究SC所附的 SECURITY SAMPLE裡面,有USER GROUP的功能,他的設計  USERS - GROUPS彼此是多對多功能。 many to many
資料庫結構是由三個 Tables 組成:
1. users : #login, username...
2. groups: #group_id, group_name....
3. users_x_groups: #login, #group_id

在SC的 FORM APP裡面,自己的欄位,都是 1-1的關係,這是最簡單基本的。

第二種就是 1-M,就是 one to many。例如:一個客戶,有多張訂單。
SC是用  master/detail form 來做,產生也很方便;

稍微複雜的就是 m-m,many-many,多對多的關係。例如:一個老師可以教多種課程、而這個課程也同樣可以被多個老師教,這就是一個多對多的案例。
在SC就用 FORM 裡面的 many-to-many relationship 來做,稍微複雜,但是,SC都設計好了,只要清楚關係,資料庫設計好,設定就完成,非常方便、迅速。

1-1:資料庫就是相同的 TABLE直接的欄位就搞定了
1-m:需要兩個TABLE,一個主 TABLE,例如客戶;一個複數的TABLE,例如訂單。訂單欄位裡面有一個PK:訂單ID,加上一個FK客戶ID
m-m:多對多,需要三個TABLE。例如上面的 users, groups, 第三個紀錄m-m關係的 users_groups。第三個TABLE就需要兩個PK形成 Unique

這三種型態,SC都做好了,很方便產生。

沒有留言:

張貼留言

如何判斷現在FORM是在 insert mode? 還是 update mode?

只要用  if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。