Форум программистов, компьютерный форум, киберфорум
Наши страницы

Microsoft SQL Server

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.82
androidos
29 / 27 / 1
Регистрация: 07.07.2011
Сообщений: 770
#1

Как правильно связать 2 таблицы - SQL Server

02.04.2012, 22:26. Просмотров 3005. Ответов 6
Метки нет (Все метки)

К примеру:
TABLE USER: ID_USER, NAME, AGE
TABLE INFORMATION: ID_INFO, ID_USER
Вот, и связать по ID_USER

Или же:
TABLE USER: ID_USER, NAME, AGE, ID_INFO
TABLE INFORMATION: ID_INFO
И связать так же по ID_USER, но в TABLE USER будет ключ информации.

Можно ли использовать первый вариант? И если можно, то поясните разницу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2012, 22:26
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как правильно связать 2 таблицы (SQL Server):

Правильно связать таблицы - SQL Server
Добрый день. Есть такая структура: Везде связи 1 ко многим. В диаграмме на update и delete стоит no action. Проблема в...

Правильно связать таблицы - SQL Server
Делаю БД стоматологии. Таблицы: 1. Пациенты(code, name, surname) - code - PK, стринговый, содержит код пациента (не AI) 2....

Как связать таблицы? - SQL Server
Добрый день, сразу прошу прощения за банальность вопроса, но впервые вожусь с относительно большой базой и есть сомнения в правильности...

Как связать две таблицы? - SQL Server
подскажите, пожалуйста, как связать две таблицы в ms sql отношением

Как связать две таблицы - SQL Server
База состоит из двух таблиц Department --- id (int primary key) --- name (varchar) --- parent (int) Users --- Id ---...

Как правильно реализовать таблицы - SQL Server
Есть "Блюда" у которых имеются различные "Составы" в каждый из которых входят различные "Ингредиенты". Как мне лучше организовать связи...

6
_katon_
378 / 235 / 10
Регистрация: 03.10.2011
Сообщений: 965
02.04.2012, 22:33 #2
Все зависит от чего что зависит (во тавтология ну да ладно)!
Вообще я понимаю для чего нужна таблица User, но вот для чего нужна таблица information понять сложно. кроме того зачем нужна таблица состоящая из одного атрибута - ID. Поясните пожалуйста, зачем нужна таблица information!
0
androidos
29 / 27 / 1
Регистрация: 07.07.2011
Сообщений: 770
02.04.2012, 22:37  [ТС] #3
Я взял таблицу для примера. Ок, давайте тада возьмем table История_болезни в качестве второй. Поясните?
0
_katon_
378 / 235 / 10
Регистрация: 03.10.2011
Сообщений: 965
02.04.2012, 23:01 #4
Неа не надо! С медицинской тематикой с большего знаком)).

Таблица должна содержать атрибуты которые зависят только от первичного ключа. Рассмотрим таблицу Users в ней должны хранится атрибуты относящиеся к сущности именно User-а и ничего больше. Перечислим атрибуты сущности (ну так на вскидку): пол, рост, вес, ФИО (ИМХО можно разбить на три поля), возраст и т.д. т.е. атрибуты должны быть признаком записи.
Теперь рассмотрим Историю болезни! Можно ли ее считать атрибутом Users? думаю, что в определенном контексте можно (допустим если user-у соответствует тока одна история болезни всю жизнь и она является неотделимой его честью с точки зрения рассмотрения медицины).
Лично я давно понял что при построение структуры данных все условно и ваше решение скорее всего не совпадет с решениями др. программистов из-за особенностей вашего мировоззрения.

Поэтому при построении структуры надо ориентироваться на тот факт, что понять ее должно как можно больше людей ориентируясь просто на здравый смысл (целая философия получилась)) ).

Вернемся к нашим таблицам.
Лично я бы добавил ссылку на user-а в таблицу "История болезни" по той простой причине, что считаю код человека (доктора, дату создания, дату последней записи и т.д) для которого она писана очень важным признаком этой сущности без которой она в принципе не имеет даже права на существование. Лично мне кажется, что такой подход будет понятен большинству людей.
0
androidos
29 / 27 / 1
Регистрация: 07.07.2011
Сообщений: 770
02.04.2012, 23:11  [ТС] #5
Насколко я понял, то Вы предложили 1-ый вариант. Ок. По поводу мировоззрения интересно, впервые слушу про себя такое. Да я скорее просто учусь, пытаюсь понять для себя основные моменты )) Вот нашел здесь на форуме похожий пример (картинка), там наоборот 2-ой вариант. Считаете данная схема не совсем верна?
0
_katon_
378 / 235 / 10
Регистрация: 03.10.2011
Сообщений: 965
02.04.2012, 23:35 #6
Нет! Я наоборот подчеркиваю, что можно рассматривать два варианта, но выбирать тот который будет считаться наиболее понятным и приемлемы. Для меня более понятен тот вариант который предложил я. А про мировоззрение это относится вообще ко всем людям)).
Могу лишь привести д.п. доводы
User может иметь несколько историй болезни. Тогда поместить ссылку в таблицу users ну никак не получится. Кроме это я считаю, что история болезни каждого отедльного человека уникальна и не может быть поставлена в соотвествие группе людей (только одному). Вот мои доводы или если будет угодно логика, по которой я выстраиваю связи.

Кстати, для справки, я видел решения, по которым разработчики, чтобы не парить свой мозг, делали так называемые развязанные таблицы. Если подробнее, то они добавляли третью таблицу в которой содержалась ссылка как на запись в первой таблице так и во второй. Этот подход обладает одним существенным достоинством, что человек, который использует эту связку таблиц может вертеть ей как хочет. Надо одному человеку поставить в соответствие много историй болезней? Да вот пожалуйста! Надо наоборот? Вот держите!
1
androidos
29 / 27 / 1
Регистрация: 07.07.2011
Сообщений: 770
02.04.2012, 23:51  [ТС] #7
Ok, спасибо
0
02.04.2012, 23:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2012, 23:51
Привет! Вот еще темы с ответами:

Как связать таблицы в базе данных "Школа" - SQL Server
Здравствуйте! Делаю базу данных "Школа" и у меня есть 6 таблиц: ученики, учитель, предметы, оценки, посещаемость, классные руководители. В...

Как правильно создать таблицы и связи между ними? - SQL Server
уважаемые форумчане! мне очень нужна помощь в создании таблиц и связей между таблицами... вот что нужно сделать... Информация о...

Как связать две таблицы с датами????? - Базы данных
Не понимаю! Подскажите плиззз!!! Имеются две таблицы продаж товара SALES (по одной на офис) вида: ID, DATE, Quantity. Имеется общий...

Есть 2 сущности с пересекающимися атрибутами. Как правильно связать их между собой? - Базы данных
Добрый день. Помогите пожалуйста составить правильные связи для БД. Имеется следующая информация: 1) Спектакли - Название -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru