2017-10-12 68 views
0

我有一個問題,關於如何創建兩個不同實體的成員之間的關係? 例如,如果是1:1,您可以創建一個引用該實體的基於域的屬性。 但是如果你有一個客戶有多個地址,並且你有一個地址實體。MDS中的關係

當您根據1:M更新客戶實體的地址屬性的成員時,我們將如何顯示該關係並將地址實體連接到客戶實體?

因此,如果客戶實體中的地址成員發生更改,該更新過程將如何工作,因爲我們沒有映射關係?

我知道在M:M你會使用一個橋表。而在MDS數據庫中哪個表格將包含該關係信息?

對文章和博客文章/視頻或想法的任何建議,將不勝感激。

謝謝, 安德烈

+0

我不確定關於此主題的文章或視頻,但如果您有一對多的關係,那通常意味着爲此創建一個單獨的表格(假設客戶可以擁有無​​限地址,或者您沒有想限制他們可以擁有的金額)。例如您的實例中的「地址」表,並帶有指向客戶ID的鏈接。如果您的客戶可以擁有固定的最大金額(例如最多允許3個地址),您可以根據需要(地址1,地址2,地址3)將其保留在一張表中。這取決於... – ZLK

+0

您將需要一個客戶地址表,但不太確定這應該保留在MDS中。 – RegBes

回答

-1

甲一對多的關係由2個表中,許多表引用一個表中的。

Customer Table            Address Table 
+-------------+------------+-----------+----------------+ +------------+-------------+---------+ 
| customer_id | name_first | name_last | customer_class | | address_id | customer_id | address | 
+-------------+------------+-----------+----------------+ +------------+-------------+---------+ 
|   1 | Barack  | Obama  |    2 | |   1 |   1 | Place1 | 
|   2 | George  | Bush  |    2 | |   2 |   1 | Place2 | 
|   3 | Michael | Jordan |    1 | |   3 |   2 | Place3 | 
+-------------+------------+-----------+----------------+ |   4 |   3 | Place4 | 
                  |   5 |   3 | Place5 | 
                  |   6 |   3 | Place6 | 
                  +------------+-------------+---------+ 
0

在MDS(主數據服務),您可以使用層次功能。

- 選項1:創建明確的層次

如果您使用的SQL Server 2012(可能是2014也是如此),那麼顯式層次結構將解決這個問題。基本上,您將能夠使用Customer實體行作爲層次結構中的父節點(考慮樹結構)並將一個或多個Address實體行分配爲每個Customer的子級。

顧名思義,這需要「顯式」管理..意味着有人會使用MDS Hierarchy UI頁面手動(拖放),或者您可以使用SSIS包來自動化它,同時加載登臺表。 (見:Move Explicit Hierarchy Members by Using the Staging Process (Master Data Services)

注:顯式層次結構已過時(啓動SQL 2016 ...我認爲)

- 選項2:創建派生層次結構(橋表 - M:M關係)

這與先前建議的M:M關係的橋表概念類似,但在MDS上下文中。

  1. 創建另一個實體,稱之爲CustomerAddressRelationship(比方說),我們稱之爲CAR現在。

  2. 將2個域屬性添加到CAR:一個引用Customer實體,另一個引用Address實體。

  3. 現在,如果你願意,你可以在格式CAR>客戶>地址打造這款車實體派生層次。 瞭解更多關於Derived Hierarchies: Many-to-Many (M2M) Relationships

- 選項3:創建派生層次結構(1:M)

  1. 不要創建CAR。只需添加一列客戶ID(比方說)到地址實體。這樣每個地址可以有0個或1個與之相關的客戶。

  2. Create a Derived Hierarchy for 1:M Relationship

希望這有助於。