Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Моделирование Клиента и его телефонов / 10 сообщений из 10, страница 1 из 1
21.08.2008, 19:35
    #35500340
clent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Моделирование Клиента и его телефонов
В книге "Применение DDD и шаблонов проектирования" автор (Д. Нильсон) приводит следующий пример модели данных в БД для клиента и телефона :

Код: plaintext
People(int ID, int HomeCountryCode, int HomeAreaCode, int HomeLocalNumber, int WorkCountryCode, int WorkAreaCode, int WorkLocalNumber)

и в комментарии написал, что в принципе можно-бы вынести таблицу с телефонами в отдельную таблицу, однако обычно это не имеет смысла - "этим мы не увеличим удовлетворенную нормальную форму" 8)

Как понимаю, так делать нельзя, потому-что телефонов может оказаться несколько. Да и 3НФ нарушена, т.к. поля телефона характеризуют сущность Телефон, а не человека. Т.е., наверно правильно будет так:

Код: plaintext
1.
2.
People(int ID)
Telephones(int ID, int Owner, int HomeCountryCode, int HomeAreaCode, int HomeLocalNumber, int type)
TelephoneTypes(int ID, varchar( 15 ) Type)

Однако, если все-таки предположить, что телефонов по условию действительно только один, то кажется смысла выносить телефон действительно нет. Чем станет лучше, если он окажется в отдельной таблице ?
...
Рейтинг: 0 / 0
22.08.2008, 06:11
    #35500686
sti
sti
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Моделирование Клиента и его телефонов
clentОднако, если все-таки предположить, что телефонов по условию действительно только один, то кажется смысла выносить телефон действительно нет. Чем станет лучше, если он окажется в отдельной таблице ?Хотя бы тем, что завтра условия изменятся и телефонов станет несколько )
...
Рейтинг: 0 / 0
22.08.2008, 08:10
    #35500734
Valentin Kotelnitski
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Моделирование Клиента и его телефонов
Не вижу имени и фамилии - будешь запоминать People по номерам?
В таблице Telephones лучше писать OwnerID, TypeID.
Если телефон один, действительно можно все поместить в одну таблицу.
Даже если телефонов несколько, можно все в одну таблицу:
PersonID, FirstName, LastName, HomePhone, MobilePhone, WorkingPhone.
Больше телефонов вряд ли будет.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
22.08.2008, 08:47
    #35500764
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Моделирование Клиента и его телефонов
У нас есть еще табличка привязки телефонов к адресам.А то иногда говорят - чел по такому-то адресу,а мы по базе уже знаем, какой там телефон.
...
Рейтинг: 0 / 0
22.08.2008, 10:01
    #35500865
clent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Моделирование Клиента и его телефонов
и все-таки, если телефонов строго один, привязки к адресам нет, то можно сложить в одну таблицу ? А как-же 3НФ ? Ведь AreaCode не характеризует человека )
...
Рейтинг: 0 / 0
22.08.2008, 10:20
    #35500911
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Моделирование Клиента и его телефонов
Раз есть четкая уверенность,что телефон один,то это значит, что через месяц их станет 3.
можно конечно их через запятую перечислить, но когда встанет вопрос об интеграции вашей программы с атс ох намучаетесь....
...
Рейтинг: 0 / 0
22.08.2008, 10:32
    #35500943
clent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Моделирование Клиента и его телефонов
ShtockРаз есть четкая уверенность,что телефон один,то это значит, что через месяц их станет 3.
можно конечно их через запятую перечислить, но когда встанет вопрос об интеграции вашей программы с атс ох намучаетесь....
я не спорю, что телефоны должны быть отдельно, а скорее из академического интереса хочу понять, есть-ли нарушение 3НФ в случае одной таблицы, т.к. на мой взгляд есть, а на взгляд Д. Нильсона нет :)
...
Рейтинг: 0 / 0
22.08.2008, 10:51
    #35500986
Valentin Kotelnitski
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Моделирование Клиента и его телефонов
Академически: Если есть, то в чем оно заключается?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
22.08.2008, 11:31
    #35501128
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Моделирование Клиента и его телефонов
С академизьмом плохо,посему писать влом
...
Рейтинг: 0 / 0
22.08.2008, 15:09
    #35501908
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Моделирование Клиента и его телефонов
У моих знакомых (семья) у каждого по два мобильных, домашний и домашний CDMA. На двоих 6 тлф !!!!!

Прикажете в строчку написать ?
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Моделирование Клиента и его телефонов / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]