Как реализовать абстракцию, отношения родитель-потомок в базе данных доступа

Ниже приведена предварительная диаграмма классов для приложения, над которым я работаю. Я собираюсь использовать C# для запроса моей базы данных Access (я не буду использовать LINQ). Мой вопрос касается отношений «родитель-потомок» между классом «Клиент» (родительский/абстрактный класс) и тремя другими дочерними классами, производными от него: «Розничный/бизнес», «Корпоративный» и «Потребитель». Я разработал класс на диаграмме, и именно так я намереваюсь реализовать его на С#, чего я не знаю, так это того, как реализовать это в базе данных MS Access. Должен ли я создать таблицу для родительского класса, которым является Customer, а затем три другие таблицы для трех дочерних классов? Как определить отношения как родитель-потомок и как их запрашивать? Например, если я ищу ВСЕХ клиентов, запрашиваю ли я только таблицу клиентов или все ее дочерние таблицы? Пожалуйста, пока игнорируйте атрибуты, так как я собираюсь уточнить их позже. Спасибо.

Низкая репутация не позволила бы мне пропустить изображение здесь напрямую, поэтому я разместил здесь изображение диаграммы классов, пожалуйста, посмотрите.

http://postimg.org/image/wesl37i8f/


person SajidBarcha    schedule 20.11.2014    source источник


Ответы (1)


Я думаю, все, что вам нужно, это несколько базовых уроков по базам данных: здесь: http://code.tutsplus.com/tutorials/relational-databases-for-dummies--net-30244 https://www.google.co.uk/search?q=how%20to%20create%20relational%20database&gws_rd=ssl

вы почти закончили со своей диаграммой классов, теперь вам нужно идентифицировать личности и нормализовать их. Да, для всех ваших классов вам нужно создать таблицу.

как определить отношения: на вашей диаграмме классов у вас есть [customer_table] и [business, Corporate, Consumers] в рациональной базе данных, у вас будет [customer_table] в [customer_table], у вас будет [ customer_type_id], который действует как ключ связи с вашей таблицей [customer_type].

если вы создаете нового клиента, вы затем выбираете тип клиента из своей таблицы customer_type, и это будет простое отношение.

для запроса таблицы клиентов: если вы хотите получить все сведения о клиентах, вы можете запросить только таблицу customer_table. если вы хотите узнать, к какому типу клиентов они относятся, вы должны связать [customer_table] с [customer_type_table] чем-то связанным

select customer_table.customer_name, customer_type_table.customer_type
from customer_table inner join customer_type_table on customer_Table.customer_type_id = customer_type_table.customer_type_id

посмотрите на приведенные выше ссылки, они могут помочь вам понять больше. если вы застряли, вы можете опубликовать все, что вы пробовали до сих пор. удачи

person Krish    schedule 21.11.2014
comment
Спасибо, братан, я понял это после некоторых исследований в тот день, и именно так я и сделал. - person SajidBarcha; 24.11.2014