siebel學習筆記-數據結構層次,BC之間的關係

數據結構層次
整個Siebel的數據的層次結構分爲三個層次,每一個層次都對應了下一個層次的相應的元素,一個層次的改動不影響另一個層次的穩定性,一張表現他們層次的經典圖如下:可以看到,一個BC其實對應的就是一個邏輯的表(可以是一個基表也可以是幾個關聯的表的一個邏輯的表),BC裏的field就是對應了數據表的列,多個相關主題的BC則組成了BO前面的文章已經交代了ViewScreen等屏幕元素,這些屏幕元素和BC,BO也存在一定關係,從BOBC的觀點來重新定義這些概念就是,View其實對應的就是一個BO,而Applet則對應着一個BC,所謂Control則是屏幕上對應於關係數據字段的顯示。多個相關的View則組成了一個Screen,而多個相關的Screen則組成了一個Siebel應用(如Call Center應用)。
需要注意的是一個BO需要有個一個主要的BC(該BC表示了自己關注的業務實體),如下圖:


Siebel Fundamental (5) Business component & Business Object
Business ComponentBC)和Business ObjectBO
個人覺得Siebel應用架構的一個成功的地方就是在應用裏引入了BCBO的概念,從而使得幾千張關係數據表能夠按照業務的含義組織成業務對象,對於業務人員而言具有了業務上的含義,而不僅僅是從技術人員的觀點來對待數據(就是關係表而已)。

LinkBC之間的關係
對於關係表之間的關係,如主外鍵關係,從業務的BO觀點來看則是BC之間的關係(請注意,不是嚴格的一對一,並非是一個關係表的外鍵一定會組成BC間的關係)。因爲一個BO總是由一個主要的BC以及和它相關的一些BC組成,而主要的BC總是以一定的關係和附屬的BC關聯,這種關係就稱之爲Link,如下圖:
我們已經交代過一個View展現的就是一個BO,而BO是由一個Master BC和相關的一些子BC組成,如果不存在Link,則子BC的所有數據都會展現出來,而建立了Link之後,就只有和Master BC選定的記錄相關聯的數據纔會展現出來。這些關係可能是:

11關係:一對一的關係很多是用在Extension表上,Extension表的後綴名通常爲_XExtension表是Siebel裏常見的一種表,一般Siebel業務的基礎數據存儲在Base表中,然後把一些擴展的數據和一些可以客戶化的字段(attribute字段)放在Extension表中,從而給不同行業,不同場景提供了一個擴充性很強的數據模型。)

1M關係:一對多的BC關係一般用於Master-Detail的業務場景,比如一個Account以及該Account已經購買的產品就是一個Master-Detail關係。這種關係類似於關係表的主鍵外鍵關係,這種關係在Extension表上也存在,通常後綴名稱是_XM

MM關係:多對多的關係是通過一個叫做交集表(Intersection Table)體現出來的,兩個BC之間沒有主外鍵關係,但是每個BC和該交集表有主外鍵關係,如下圖:
多對多的關係通常表達的是值對(value pair)的關係,如上圖表示的是公司-行業的值對組合。
Party Business Component
Party BC大概是Siebel裏最基礎的BC了,Party BC包含了個人相關實體,組織相關的實體,以及訪問控制組等爲了一定的目的建立起來的一些組織。如下圖:
Party BC基表是S_Party,但是和一般的BC不一樣的是,作爲基表的S_Party本身存儲很少的數據,主要是Party的名稱,Party的類型(是contactemployee還是account等),而更多Party相關的數據都存儲在Extension表裏,如S_CONTACTS_USER等(比較特殊的是這些Extension表的結尾並不是使用*_X來命名);此外,這些extension表的extension表(如S_CONTACT_X)本身也算是S_PARTYExtension表,這個也是Party BC的一些特殊的地方。下圖是一個很好的表達了Party的訪問控制組的圖:
rowid1的行的party類型是User List,所以這一行數據相關的信息應該存儲在S_USERLIST extension表裏;而rowid2的行的類型是Access Group,所以該行數據的額外信息應該是在表S_PARTY_GROUP extension表裏等等。這個就是一個Siebel裏的一個擴展性非常強的數據模型的一個例子。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章