Псевдоним подход, основанный на
В этом подходе, Address
таблица измерения будет совмещенным, как HomeAddress
и BillAddress
и ID
от обоих из этих двух таблиц будут связаны с HomeAddressId
и BillingAddressId
столбцов Customer
таблицы соответственно. В этом шаблоне проектирования, когда вы задать вопрос, как это,
всех клиентов с счетов или домашний адрес в Техасе
Это будет перевести на запрос, как это:
SELECT Customer.*
FROM Customer
LEFT OUTER JOIN Address HomeAddress ON Customer.HomeAddressId = HomeAddress.Id
LEFT OUTER JOIN Address BillAddress ON Customer.BillingAddressId = BillAddress.Id
WHERE HomeAddress.Name = 'Texas' OR BillAddress.Name = 'Texas'
Псевдонимы будут идеально определены на уровне отчетности (например, Universe
в SAP Business Objects) или слое запроса.
мост Таблица подход
При таком подходе вы будете создавать новую таблицу моста, чтобы сохранить соотношение между Customer
и Address
по типам. Этот подход не является «мерным» подходом как таковой, но может быть использован в размерном моделировании в виде Таблица фактов без фактов.
CustomerID | Type | AddressID
-----------------------------------
1 | Home | 10
2 | Home | 20
2 | Bill | 30
3 | Home | 10
3 | Bill | 40
Запрос в таком подходе будет иметь форму,
SELECT DISTINCT Customer.*
FROM Customer, CustomerAddress, Address
WHERE Customer.ID = CustomerAddress.CustomerID
AND Address.ID = CustomerAddress.AddressID
AND Address.Name = 'Texas'
Этот подход более применим в тех случаях, когда необходимо проанализировать связь между клиентами, принадлежащими к одному адресу.
Не уверен, что вы искали это точно, но надеемся, что ответ будет полезен для вашей визуализации и дизайна.