|
|
|
Моделирование Клиента и его телефонов
|
|||
|---|---|---|---|
|
#18+
В книге "Применение DDD и шаблонов проектирования" автор (Д. Нильсон) приводит следующий пример модели данных в БД для клиента и телефона : Код: plaintext и в комментарии написал, что в принципе можно-бы вынести таблицу с телефонами в отдельную таблицу, однако обычно это не имеет смысла - "этим мы не увеличим удовлетворенную нормальную форму" 8) Как понимаю, так делать нельзя, потому-что телефонов может оказаться несколько. Да и 3НФ нарушена, т.к. поля телефона характеризуют сущность Телефон, а не человека. Т.е., наверно правильно будет так: Код: plaintext 1. 2. Однако, если все-таки предположить, что телефонов по условию действительно только один, то кажется смысла выносить телефон действительно нет. Чем станет лучше, если он окажется в отдельной таблице ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2008, 19:35 |
|
||
|
Моделирование Клиента и его телефонов
|
|||
|---|---|---|---|
|
#18+
clentОднако, если все-таки предположить, что телефонов по условию действительно только один, то кажется смысла выносить телефон действительно нет. Чем станет лучше, если он окажется в отдельной таблице ?Хотя бы тем, что завтра условия изменятся и телефонов станет несколько ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2008, 06:11 |
|
||
|
Моделирование Клиента и его телефонов
|
|||
|---|---|---|---|
|
#18+
Не вижу имени и фамилии - будешь запоминать People по номерам? В таблице Telephones лучше писать OwnerID, TypeID. Если телефон один, действительно можно все поместить в одну таблицу. Даже если телефонов несколько, можно все в одну таблицу: PersonID, FirstName, LastName, HomePhone, MobilePhone, WorkingPhone. Больше телефонов вряд ли будет. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2008, 08:10 |
|
||
|
Моделирование Клиента и его телефонов
|
|||
|---|---|---|---|
|
#18+
У нас есть еще табличка привязки телефонов к адресам.А то иногда говорят - чел по такому-то адресу,а мы по базе уже знаем, какой там телефон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2008, 08:47 |
|
||
|
Моделирование Клиента и его телефонов
|
|||
|---|---|---|---|
|
#18+
и все-таки, если телефонов строго один, привязки к адресам нет, то можно сложить в одну таблицу ? А как-же 3НФ ? Ведь AreaCode не характеризует человека ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2008, 10:01 |
|
||
|
Моделирование Клиента и его телефонов
|
|||
|---|---|---|---|
|
#18+
Раз есть четкая уверенность,что телефон один,то это значит, что через месяц их станет 3. можно конечно их через запятую перечислить, но когда встанет вопрос об интеграции вашей программы с атс ох намучаетесь.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2008, 10:20 |
|
||
|
Моделирование Клиента и его телефонов
|
|||
|---|---|---|---|
|
#18+
ShtockРаз есть четкая уверенность,что телефон один,то это значит, что через месяц их станет 3. можно конечно их через запятую перечислить, но когда встанет вопрос об интеграции вашей программы с атс ох намучаетесь.... я не спорю, что телефоны должны быть отдельно, а скорее из академического интереса хочу понять, есть-ли нарушение 3НФ в случае одной таблицы, т.к. на мой взгляд есть, а на взгляд Д. Нильсона нет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2008, 10:32 |
|
||
|
Моделирование Клиента и его телефонов
|
|||
|---|---|---|---|
|
#18+
Академически: Если есть, то в чем оно заключается? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2008, 10:51 |
|
||
|
Моделирование Клиента и его телефонов
|
|||
|---|---|---|---|
|
#18+
С академизьмом плохо,посему писать влом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2008, 11:31 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35500734&tid=1543700]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
177ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 513ms |

| 0 / 0 |
