8 / 5 / 3
Регистрация: 13.02.2013
Сообщений: 294
1

Сущность - связь в MS SQL

08.01.2017, 14:34. Показов 3639. Ответов 17
Метки нет (Все метки)

Доброго времени суток. Подскажите пожалуйста, как сделать сущность связь для:
Есть клиент, у клиента есть личный номер телефона и контактный, но контактных может быть много. Как это реализовать?
Я сделал несколько таблиц.
Names - таблица имен
Person_Phone - таблица личных номеров
Contact_Phone - таблица контактных номеров
Client - таблица содержащая все ID
См.картинку. Либо я неверно создал таблицу, либо просто не понимаю как привязать несколько контактных номеров к имени.
Миниатюры
Сущность - связь в MS SQL  
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.01.2017, 14:34
Ответы с готовыми решениями:

Как достроить модель сущность-связь?
(ER модель) Нужно сохранить информацию про транспортные средства - гос.рег.номер (уникальный),...

В чем отличие схемы модели данных от диаграммы сущность-связь
Все никак не могу понять отличие модели данных от ER-диаграммы. Поясните мне пожалуйста, а то...

Сущность-связь
Помогите пожалуйста, уже каша в голове. Нужно организовать связь сущностей Студент - специальность...

Модель сущность - связь
Помогите определить, верна ли составлена ER-диаграмма

17
1075 / 727 / 173
Регистрация: 27.11.2009
Сообщений: 2,168
08.01.2017, 15:42 2
Две дополнительные таблицы с полями ClientID,C_PhoneID и ClientID,P_PhoneID.
Однако, непонятно, зачем нужен отдельно Person_Phone.
Просто список уникальных номеров телефонов.
А в таблице, связывающей клиента с телефонами, ещё поле с признаком "личный", если без этого нельзя.
0
.NET senior
437 / 355 / 137
Регистрация: 23.09.2016
Сообщений: 980
08.01.2017, 16:57 3
Kurtis, например, как-то так (см. скрин)
Миниатюры
Сущность - связь в MS SQL  
0
1039 / 855 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
08.01.2017, 17:09 4
Таблица Имен - явное излишество. Вы главный держатель Списка Имен Королевства, чтобы иметь такую Сущность в базе? Нет, у вас просто есть Клиенты, с невесть откуда взявшимися именами, поэтому Имя - это просто атрибут клиента. Не порождайте сущности без нужды.

Так же и с телефонными номерами. Вы же не Главный (и единственный) телефонный провайдер Королевства, чтобы вести реестр телефонных номеров. Эти номера вам дает клиент, но т.к. номеров у него может несколько, то создадим отдельную таблицу, связанную с Клиентами как один-ко-многим, где номер телефона будет просто атрибутом
Миниатюры
Сущность - связь в MS SQL  
0
1039 / 855 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
08.01.2017, 17:12 5
кстати, личный телефон, коль он один, можно сделать атрибутом Клиента
0
1075 / 727 / 173
Регистрация: 27.11.2009
Сообщений: 2,168
08.01.2017, 20:43 6
Цитата Сообщение от YuryK Посмотреть сообщение
Вы же не Главный (и единственный) телефонный провайдер Королевства, чтобы вести реестр телефонных номеров. Эти номера вам дает клиент, но т.к. номеров у него может несколько, то создадим отдельную таблицу, связанную с Клиентами как один-ко-многим, где номер телефона будет просто атрибутом
К одному номеру телефона запросто могут быть привязаны десяток-другой абонентов.
Так что многие-ко-многим, - таблица связей.
0
1039 / 855 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
09.01.2017, 01:28 7
Цитата Сообщение от iap Посмотреть сообщение
К одному номеру телефона запросто могут быть привязаны десяток-другой абонентов.
ну и пусть, но номера раздаются не из нашей базы, поэтому сущность ПростоНомераТелефона - надумана.
Или ты поддерживаешь и идею автора на таблицу Имен?
0
1075 / 727 / 173
Регистрация: 27.11.2009
Сообщений: 2,168
09.01.2017, 11:56 8
Цитата Сообщение от YuryK Посмотреть сообщение
Или ты поддерживаешь и идею автора на таблицу Имен?
Нет, прои имена ничего сказать не могу.
Даже не представляю, что здесь имеется в виду.
Если имена клиентов, то можно держать и в таблице клиентов. Но дело, как говорится, хозяйское.
0
1039 / 855 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
09.01.2017, 13:00 9
Почему номера телефонов заслуживают отдельной таблицы именно из-за того, что
Цитата Сообщение от iap Посмотреть сообщение
К одному номеру телефона запросто могут быть привязаны десяток-другой абонентов.
Ну почему тогда имена можно хранить в таблице клиентов, хотя Иванов там тоже может быть десяток-другой,
т.е. к одному Имени может быть привязан десяток-другой клиентов.

Т.е. ситуация одна и та же, а подход - разный.
0
1075 / 727 / 173
Регистрация: 27.11.2009
Сообщений: 2,168
09.01.2017, 19:32 10
Цитата Сообщение от YuryK Посмотреть сообщение
Т.е. ситуация одна и та же, а подход - разный.
Где же одна?
У меня вот, например, телефонов несколько, а имя - одно.
Хотя, бывает, у некоторых десяток имён и паспортов.
Ульянов, Ленин, ...
0
1039 / 855 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
09.01.2017, 19:47 11
При чем здесь ты?

Мы говорим о сущности "Телефонный номер", который есть только набор цифр, а "Телефоны клиента" - таблица, связывающая "Клиента" и "Телефонный номер" как многое-ко-многим

И о сущности "Имена", которая связана с "Клиенты" как многие-ко-многим.

Я отмел обе сущности "Телефонный номер" и "Имена", как надуманные, которые могут быть атрибутами у "Телефоны клиента" и "Клиенты" соответственно.

Ты же счёл сущность "Телефонный номер" вполне законной, а "Имена" лишней. Вот я и не понимаю, чем ты руководствовался, принимая разные решения в абсолютно идентичных ситуациях.
0
8 / 5 / 3
Регистрация: 13.02.2013
Сообщений: 294
16.01.2017, 14:04  [ТС] 12
Много всяких идей. Мне показалось так будет правильно.
Миниатюры
Сущность - связь в MS SQL  
0
1039 / 855 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
16.01.2017, 14:21 13
Kurtis, ужас!!! Ограничься для начала этим
Миниатюры
Сущность - связь в MS SQL  
0
8 / 5 / 3
Регистрация: 13.02.2013
Сообщений: 294
16.01.2017, 14:23  [ТС] 14
YuryK, скажите пожалуйста, а что ужасного? ну что я делаю не так? Мне хотелось бы понять
0
1039 / 855 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
16.01.2017, 14:32 15
Цитата Сообщение от Kurtis Посмотреть сообщение
Мне хотелось бы понять
Мне бы тоже хотелось понять, что у вас там, но не могу

То, что у одного клиента может быть много Phones, часть из которых может быть контактными, а другая - личными (т.е. не обязательно один) - это ладно

Но что там за мощная связь в таблице Phonebase? Как (и главное когда, не говоря уж Зачем) вы собираетесь контакты одного клиента связывать с другим клиентами вашей базы?
0
8 / 5 / 3
Регистрация: 13.02.2013
Сообщений: 294
16.01.2017, 14:39  [ТС] 16
YuryK, Я совсем не это хотел отобразить в PhoneBase. Я предполагал, что есть таблицы:
Клиент - где хранится его фио, др и личный id
Телефоны - где хранится много телефонов с привязкой к id клиента
И таблица, которая содержит в себе ключевые значениях этих таблиц.
0
1039 / 855 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
16.01.2017, 14:45 17
Лучший ответ Сообщение было отмечено Kurtis как решение

Решение

Цитата Сообщение от Kurtis Посмотреть сообщение
И таблица, которая содержит в себе ключевые значениях этих таблиц.
это совсем не нужная таблица? Телефоны уже связаны с клиентом Phones.client_id. Никакой третьей таблицы здесь не нужно.
1
8 / 5 / 3
Регистрация: 13.02.2013
Сообщений: 294
16.01.2017, 15:03  [ТС] 18
Для примера, я забиваю данные в таблицу Клиента, потом номера телефонов и в PhoneBase, после пробую скрипт и всYuryK, да, спасибо, попробовал без третьей таблицы, все работает. Не нужно лишним нагромождать. Спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2017, 15:03

Диаграмма сущность-связь
Доброго времени суток! Что неправильно на схеме? На схеме изображена структура оптового склада

Модель сущность-связь
Задание: Разработка базы данных и интерфейса пользователя для информационной системы обувного...

Сущность-связь. Проверьте пожалуйста
Добрый день. Создала БД, проверьте пожалуйста связи, правильно сделала?

Модель сущность-связь БД Заказчик -- Договор
Здравствуйте. Подскажите пожалуйста, правильно ли создана модель сущность-связь (см.вложение)? ...


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

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

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