2013-03-25 11 views
5

Próbuję utworzyć wymiar dla preferencji klienta, pozyskiwany z wielu tabel.Modelowanie wymiarowe

Przykład źródła tabelach są jak poniżej:

enter image description here

ja już dostałem Dim klienta zbudowany i teraz mam zaprojektować preferencji klienta wymiar. Nowym wymiarem będzie SCD1; zawsze mając najnowsze preferencje klientów. Ale dany klient może mieć wiele kombinacji.

Teraz moje pytanie: czy jest to dobre zaprojektowanie wymiar dla każdej tabeli Preference to powinien dostać wszystkie atrybuty preferencji klienta do jednego wymiaru tabeli poniżej:

enter image description here

Kolumny podświetlonego uczyni wyjątkowa preferencja klienta. * Klient może mieć wiele preferencji.

Co jeśli w przyszłym biznesie wprowadzimy więcej preferencji i chcemy uwzględnić w wymiarze. Następnie muszę wprowadzić te atrybuty w powyższej tabeli, a także klucze, które czynią wyjątek.

Czy lepiej jest wykonywać indywidualne wymiary według preferencji lub scalać wszystkie w jeden duży wymiar, jak wyżej.

Sugestie proszę.

Edit:

nawiązaniu do mojego czytania Rozumiem, że muszę iść do projektowania tabeli most między moich klientów słabe i innych preferencji klienta wymiarach.

To, co planuję, to utworzyć wymiar CustomerPreference dla każdego typu preferencji we wszystkich kombinacjach. I zamapuj je w tabeli mostów, gdzie mogą mieć wiele do wielu relacji preferencji klienta.

Przykład poniżej

Czy to dobry sposób, żeby zrobić albo jakieś najlepsze praktyki.

enter image description here

[lub] jest to właściwa droga?

enter image description here

Edit: 27-03-2013

Zgodnie z sugestiami Pondlife jadę z podejściem Snowflake jak poniżej:

enter image description here

+0

Nie wiem, dlaczego to pytanie zostało głosowane na "Zamknij". Żaden z facetów, którzy głosowali za tym, nie ma doświadczenia z modelowania wymiarowego. Podczas gdy strona pozwala na opublikowanie pytania ze znacznikiem "Dimensina-Modeling". I nie wiem, jak to pytanie nie jest związane z programowaniem ani rozwojem oprogramowania. A jeśli spojrzysz wstecz w historię pytań na temat "Dimensonal Modeling" na Stackoverflow, jest ich wiele i uzyskano dobrą odpowiedź. – Sreedhar

+0

Nie wiem, dlaczego to pytanie zostało wybrane na "Zamknij". Żaden z facetów, którzy głosowali za tym, nie ma doświadczenia z modelowania wymiarowego. Podczas gdy strona pozwala na opublikowanie pytania ze znacznikiem "Dimensina-Modeling". I nie wiem, jak to pytanie nie jest związane z programowaniem ani rozwojem oprogramowania. A jeśli spojrzysz wstecz w historię pytań na temat "Dimensonal Modeling" na Stackoverflow, jest ich wiele i uzyskano dobrą odpowiedź. Uprzejmie nie używaj swoich przywilejów, aby zadać pytanie, jeśli nie rozumiesz. – Sreedhar

Odpowiedz

4

Nie wszystko wspomnianej o swojej tabeli faktów, która może być kluczowym czynnikiem przy podejmowaniu decyzji. Jeśli preferencje dotyczą tylko klientów i są całkowicie niezwiązane z tym faktem, możesz użyć tabeli snowflake model, aby dodać tabelę preferencji klientów powiązaną tylko z wymiarem klienta.

Ale wspomniałeś "indywidualne wymiary na preferencję", co sugeruje, że preferencje mogą być bezpośrednio związane z faktem.W takim przypadku, jeśli masz ograniczoną liczbę możliwych preferencji na fakt (nie jest to jasne z podanych informacji), lepszym rozwiązaniem może być opcja mini-dimension, która zawiera wszystkie możliwe kombinacje preferencji.

Jeśli to nie pomaga, sugeruję wyjaśnić następujące kwestie:

  1. Co oznacza
  2. tabela fakt Jeżeli preferencje są związane z faktem, czy klientowi
  3. Jeśli jeden klient (lub fakt?) ma do 3 preferencji (marketing, platforma i gatunek) lub nieokreśloną liczbę (np. 3 preferencje marketingowe, 10 preferencji platformy, 2 preferencje dotyczące gatunku)
+0

Nie ma faktów związanych, a preferencje są po prostu kojarzone z Klientem. Tak, każdy klient może mieć nieokreśloną liczbę preferencji w zależności od tego, co powiedziałeś, np. 3 preferencje marketingowe, 10 preferencji platformy, 2 preferencje gatunkowe – Sreedhar

+0

Zamierzałem pójść z tym, co powiedziałeś, o mini wymiarach dla każdego typu Preferencji z wszystkimi możliwymi kombinacjami, a następnie uzyskać połączenie z Klientem w tabeli Bridge (tabela bez faktów). – Sreedhar

+0

Tak, te preferencje dotyczą tylko klientów i są całkowicie niezwiązane z tym faktem. Tylko klient jest powiązany z faktami. – Sreedhar

0

You'v Dostaliśmy przerażający model "Entity-Attribute-Value" dla preferencji klientów, ponieważ programiści uważają, że ich życie jest "łatwiejsze", ponieważ nie trzeba wprowadzać zmiany DB po dodaniu nowej preferencji. Oczywiście, że twoje życie jest znacznie trudniejsze.

Obecnie pracuję w podobnej sytuacji i stwierdziłem, że najłatwiejszym sposobem modelowania preferencji klientów jest tabela atrybutów mostów, o której sam się dowiedziałeś, zwłaszcza gdy jest naprawdę wiele dla wielu.

Prawdziwe pytanie, które należy zadać, to: Jakiego rodzaju analizy zostaną wykonane na tych preferencjach? Jeśli chcesz tylko filtrować klientów według preferencji, a następnie przejść do faktów z tą grupą klientów, wiele-wiele mostów powinno załatwić sprawę.

+0

Dzięki za sugestię. Wymiar moich preferencji jest specyficzny dla Klienta Dim i podążam za podejściem Płatek śniegu, łącząc ustawienie preferencji klienta z wymiarem klienta, zgodnie z sugestią @Pondlife. Jeśli ten wymiar preferencji został użyty w innym miejscu, w którym znajdowałbym się przy stole brydżowym (fakt faktyczny). – Sreedhar

+0

Czy istnieje przypadek, w którym klient może mieć więcej niż jedną preferencję tego samego rodzaju? Możesz potrzebować tabeli mostów atrybutów w płatku śniegu. –