2017-02-23 34 views
0

Дизайн базы данных очень запутан для меня. Я понимаю понятия, но «хороший дизайн» сложный, и я хочу, чтобы он был правильным.MS Access Родительские/детские отношения

У меня есть очень фундаментальные вопросы.

Вопрос 1) Если у меня есть три таблицы, tbl_lenders, tbl_programs, tbl_products, считается одобренным или хорошим дизайном, чтобы связать первичный ключ от tbl_lenders с одним внешним ключом с каждым tbl_programs и tbl_products. Таким образом, в основном, один первичный ключ из одной таблицы в две разные таблицы.

Вопрос 2) В этой базе данных есть анкета. Мне нужно позвонить в кучу банков и узнать о правительственных программах, которые они подписывают, и о любых собственных продуктах, которые они могут предложить. Есть куча вопросов «Да/Нет». Я много раз читал, чтобы не использовать тип данных Yes/No для Access. Поэтому я создал таблицу с названием tbl_options, которая имеет несколько записей, из которых: «Да», «Нет» и «Нет». Могу ли я установить отношения из tbl_options в несколько полей в tbl_programs (и tbl_products). Таким образом, множественные отношения между одним и тем же основным ключом в одной таблице с несколькими внешними ключами, расположенными в другой, но отдельной таблице. enter image description here

enter image description here

Picture один нагляден пример вопроса один, где у меня есть один ко многим отношений от первичного ключа в tbl_lenders к одной таблице, а затем в другую.

Вторая фотография является примером второго вопроса, где tbl_options и tbl_options_1 - это одна и та же таблица (только MS Access делает свою вещь), а ее первичный ключ связывает несколько полей во второй таблице.

Это нормально?

+1

Вы отметили этот вопрос для трех разных баз данных. Какой из них вы используете? –

+0

MS Access. Я отметил его как трое, чтобы привлечь чье-то внимание. Я понял, что все реляционные базы данных (я знаю, никто не любит Access, LOL), поэтому я решил, что основной характер вопроса будет применяться ко всем трем. –

+0

Это действительно логичный вопрос дизайна, поэтому база данных в значительной степени неактуальна. – BobC

ответ

1

Чтобы ответить на вопрос 1:

Когда я хотел бы сделать логический дизайн, я хотел бы попробовать трудно назвать оба конца отношения и посмотреть, если это имеет смысл. Например, похоже, что у вас есть отношения «многие ко многим» между LENDERS и PROGRAMS.

  xxxxxxx 
PROGRAM >-------------------------< LENDERS 
          yyyyyy 

Так что, если вы называете каждый конец отношений, вы можете механически построить два sentanecs

Каждая программа хххххх один или несколько кредиторов Каждый кредитор YYYYYY один или несколько программ

Совершите посмотрите на этом веб-сайте для простого примера: http://www.entitymodelling.org/

Теперь вы не можете реализовать отношения «многие-ко-многим» только с двумя таблицами; вы должны разрешить его через объект пересечения (иногда это называется в качестве таблицы моста). Субъект пересечение обычно только первичные ключи двух таблиц, например

PROGRAM ---------<LENDERPROGRAM>--------- LENDER 

Так длинный ответ на ваш вопрос, да, это действительный дизайн, обеспечивая это имеет смысл для бизнеса.

+0

Спасибо за ваше время Боб. Я очень ценю это. Вопрос 1 больше касается первичного ключа в tbl_lenders, имеющего отношение «один ко многим» к таблице соединения (моста) влево и вправо от нее на картинке. Я вполне уверен, что все в порядке, и я уверен, что второй вопрос не в порядке. Я просто хочу убедиться, прежде чем идти дальше. Еще раз спасибо. –

+0

Для Q2, похоже, что ваша таблица PROGRAMS имеет столбец для каждой программы или продукта; я читаю это правильно? – BobC

+0

Цель программы - хранить информацию о государственных программах ипотечного кредитования. Таким образом, каждая строка будет новой программой: для моментов, FHA - Title II, VA, USDA, Обычный и т. Д. ... В каждом столбце представлена ​​информация о программе. Минимальный авансовый платеж, страховая сумма, одаренная земля. По вопросам, которые задают вопросы «Да/Нет», я хочу держаться подальше от использования типа данных «Да/Нет», потому что я читал из нескольких источников, чтобы не использовать его. –

Смежные вопросы