|
|
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
Добрый день! Стоит разработать схему БД информационной системы "Телефонно-адресная книга". В этом деле опыта немного, так что от ошибок отнюдь не застрахован. С вашей помощью надеюсь избежать этих самых ошибок, а также выслушать все замечания и предложения по оптимизации схемы БД. Итак, исходные требования к ИС ( сам же требования и выдвигал ): 1. Абонент (Subscriber) ( человек, проживающий по определенному адресу и имеющий доступ к телефону) имеет как домашний, так может иметь и мобильный телефон. 2. Абонент может иметь несколько адресов (Address), каждый адрес, соответственно, может иметь несколько абонентов ( многие ко многим ). 3. По одному адресу может находиться несколько телефонов ( Home_Phone ), но один телефон не может принадлежать многим адресам (связь 1 ко многим). 4. Абонент может иметь мобильный телефон (Mobile_Phone), так и не иметь. При этом номер мобильного телефона может принадлежать только одному абоненту. 5. У определенного адреса может быть телефон, но может быть ни одного абонента. Ну, в общем, как-то так... Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2012, 19:41 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
Нет смысла делить телефоны по двум таблицам. У мобильных достаточно оставить пустую ссылку на адрес. Избыточно привязывать абонента к адресу, достаточно связи через телефон. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2012, 19:47 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
> Стоит разработать Полагаете? ;) > информационной системы "Телефонно-адресная книга" VoIP как вариант голосовой связи вы категорически не рассматриваете? > один телефон не может принадлежать многим адресам Интересное утверждение. Как минимум сервис 800* ему не соответствует. И как бы никто не обещал, что внутренняя АТС обязана быть территориально ограниченной, хотя и имеющей один внешний номер публичной сети. Про стандартные короткие номера, наверное, нет смысла напоминать? > Ну, в общем, как-то так... Определитесь, что вы хотите получить. Если телефонную книгу, скажем, абонентов ТС - частных лиц, то можно оставить структуру в описанном вами виде, приведя описание территориальной части к стандартному виду (поищите, здесь обсуждается регулярно). А если вы делаете нормальный телефонный справочник, то переделывать нужно все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2012, 20:28 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
guest_20040621сервис 800* ему не соответствует. Да пофиг: главное назначение привязки телефона к адресу это найти куда киллера засылать. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2012, 20:32 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Стоит разработать >Полагаете? ;) Пропустил слово: стоит задача разработать. Разрабатываю я исключительно для себя. Задача: поднабраться опыта в проектировании БД и построении к ней (базе) различных sql-запросов. > информационной системы "Телефонно-адресная книга" <VoIP как вариант голосовой связи вы категорически не рассматриваете? Не рассматриваю.)) Сначала хочу что-нибудь относительно попроще реализовать ( для себя). А потом уже можно и за более серьезные вещи браться =) > один телефон не может принадлежать многим адресам <Интересное утверждение. Как минимум сервис 800* ему не соответствует. И как бы никто не обещал, что внутренняя АТС <обязана быть территориально ограниченной, хотя и имеющей один внешний номер публичной сети. Про стандартные короткие <номера, наверное, нет смысла напоминать? Признаться, я не сильно владею информацией относительно распределения телефонных номеров. Если один телефонный номер может принадлежать многим адресам, то не вопрос -- организуем связь "многие ко многим" ( Address-Home_Phone). > Ну, в общем, как-то так... <Определитесь, что вы хотите получить. Если телефонную книгу, скажем, абонентов ТС - частных лиц, то можно оставить <структуру в описанном вами виде, приведя описание территориальной части к стандартному виду (поищите, здесь обсуждается <регулярно). А если вы делаете нормальный телефонный справочник, то переделывать нужно все. Поясните, пожалуйста, чтобы Вы переделали, делая "нормальный телефонный справочник"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2012, 22:53 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Стоит разработать >Полагаете? ;) Пропустил слово: стоит задача разработать. Разрабатываю я исключительно для себя. Задача: поднабраться опыта в проектировании БД и построении к ней (базе) различных sql-запросов. guest_20040621 <VoIP как вариант голосовой связи вы категорически не рассматриваете? Не рассматриваю.)) Сначала хочу что-нибудь относительно попроще реализовать ( для себя). А потом уже можно и за более серьезные вещи браться =) guest_20040621 один телефон не может принадлежать многим адресам <Интересное утверждение. Как минимум сервис 800* ему не соответствует. И как бы никто не обещал, что внутренняя АТС <обязана быть территориально ограниченной, хотя и имеющей один внешний номер публичной сети. Про стандартные короткие <номера, наверное, нет смысла напоминать? Признаться, я не сильно владею информацией относительно распределения телефонных номеров. Если один телефонный номер может принадлежать многим адресам, то не вопрос -- организуем связь "многие ко многим" ( Address-Home_Phone). guest_20040621 <Определитесь, что вы хотите получить. Если телефонную книгу, скажем, абонентов ТС - частных лиц, то можно оставить <структуру в описанном вами виде, приведя описание территориальной части к стандартному виду (поищите, здесь обсуждается <регулярно). А если вы делаете нормальный телефонный справочник, то переделывать нужно все. Поясните, пожалуйста, чтобы Вы переделали, делая "нормальный телефонный справочник"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2012, 22:58 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНет смысла делить телефоны по двум таблицам. У мобильных достаточно оставить пустую ссылку на адрес. Поясните, пожалуйста, как Вы себе это представляте и как это будет реализовано (пока не совсем понял Вашу мысль) Dimitry SibiryakovИзбыточно привязывать абонента к адресу, достаточно связи через телефон. Т.е. оптимальнее делать привязку абонента к телефону? Т.е. телефоны связать с адресами, а абонентов с телефонами? Почему это оптимальней, ведь по структуре это то же самое, что и привязка абонентов к адресам? Кстати, правильно ли определены мощности отношений? Самые популярные запросы будут: -- поиск по телефону; -- поиск по ФИО; -- поиск по адресу; -- поиск по email. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2012, 23:08 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
> чтобы Вы переделали, делая "нормальный телефонный справочник"? Я бы не делал телефонных справочников в предложенном варианте. Ваша схема содержит персональные данные, вы гарантированно приобретаете геморрой при любой публикации - сетевой или печатной. Оно вам действительно надо? Возможно, имеет смысл обсуждать что-то типа "желтых страниц" (возможно, с доминирующей тематикой), но в таком случае акценты смещаются: задача - эффективно описать лавку или сервис, а не просто привести идентификатор абонентского устройства. Вообще говоря, это не очень простая задача. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2012, 23:15 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
juventineне совсем понял Вашу мысль Какое слово из "держать все телефоны в одной таблице" ты не понял? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2012, 23:43 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovjuventineне совсем понял Вашу мысль Какое слово из "держать все телефоны в одной таблице" ты не понял? Повторю вопрос. Dimitry SibiryakovНет смысла делить телефоны по двум таблицам. У мобильных достаточно оставить пустую ссылку на адрес. Я не представляю себе, как это должно быть реализовано физически ( возможно, отсутствие необходимых знаний и должного опыта тому виной). Хорошо, мы не "делим телефоны по двум таблицам" , запихиваем всю информацию, касающихся телефонов, в таблицу "Телефоны". То есть, отныне будет три сущности "Адреса", "Телефоны", "Абоненты". Адреса, по вашему, будут связаны с телефоном, телефон -- с абонентами. Не совсем понимаю: "оставить пустую сслыку на адрес". Расшифруйте, как вы себе это представляете физически. Сущность "телефоны", включающая и городские и домашние, будет связана "Адреса". Внешним ключом будет id_Адреса. "Телефоны" будут связаны с "абонентом" связью многие ко многим. А теперь картина: абонент имеет 10 мобильных телефонов. И у нас, в таком случае, будет 10 строк, где будет отсутствовать инфа по городским телефонам. Как потом искать абонента по номеру мобильного телефона в такой ситуации я тоже не представляю (кстати, какой первичный ключ вы предлагаете сделать в такой таблице?). И потом: связь "телефоны"-"абоненты" предполагается многие ко многим ( один городской номер может иметь много абонентов, один абонент может иметь много городских номеров). В то время как один абонент может иметь много мобильных номеров тел-ов, но реально один номер мобилы может принадлежать одному абоненту (один ко многим)... В общем, вопросы... Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2012, 00:45 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
juventineНе совсем понимаю: "оставить пустую сслыку на адрес". Расшифруйте, как вы себе это представляете физически. Nullable поле, содержащее NULL. Знаешь что такое NULL, нет?.. juventine"Телефоны" будут связаны с "абонентом" связью многие ко многим. С какого перепою? Абонент у телефона всегда один. Когда ты звонишь на городской телефон, ты же не спрашиваешь "куда это я попал", или таки да?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2012, 00:59 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovjuventineНе совсем понимаю: "оставить пустую сслыку на адрес". Расшифруйте, как вы себе это представляете физически. Nullable поле, содержащее NULL. Знаешь что такое NULL, нет?.. Боже мой...Изначально же ведь сказал, что опыта нет. Можно ж как-то разжевать (если, конечно, есть такое желание), а не кидаться обрывками фраз. Растолковать, какие в таком случае ключи будут в таблице "Телефоны", как организованы связи. Конкретно, так сказать, указать, а не водить за нос. Что такое NULL, я, слава Богу, знаю.. А вот что обозначает фраза "пустая ссылка на адрес", не представляю. Можно, конечно, предположить, что при заполнении поля "мобильные телефоны" значение внешнего ключа ID_Адрес будет равняться NULL, но что тогда делать с городским телефоном, вписанным в эту же строку таблицы и всегда ссылающимся на адрес? juventine"Телефоны" будут связаны с "абонентом" связью многие ко многим. С какого перепою? Абонент у телефона всегда один. Когда ты звонишь на городской телефон, ты же не спрашиваешь "куда это я попал", или таки да?.. [/quot] В своей БД я хочу реализовать следующее: если человек прописан по какому-то адресу, значит он абонент. В квартире живет семья из 4-х человек -- каждый из них является абонентом. Может, это и неправильно с точки зрения законодательства и противоречит определению слову абонент, но у меня задумано так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2012, 01:39 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovАбонент у телефона всегда один. Когда ты звонишь на городской телефон, ты же не спрашиваешь "куда это я попал", Ты спрашиваешь "Кто у телефона?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2012, 01:47 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
juventineМожно, конечно, предположить, что при заполнении поля "мобильные телефоны" значение внешнего ключа ID_Адрес будет равняться NULL, но что тогда делать с городским телефоном, вписанным в эту же строку таблицы и всегда ссылающимся на адрес? А вот подчёркнутое Вы сказали, не подумав... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2012, 01:48 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
Кстати, я посоветовал бы помнить, что разделение телефонов на мобильные и стационарные довольно условно. Уже давно "городской" номер может выводить на мобильный телефон, а по gsm технологиям иногда подключают стационарные точки в домах, имеющих адрес. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2012, 01:53 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
softwarerТы спрашиваешь "Кто у телефона?" Назачем терять время и выбивать информацию, которая тебе напрочь не нужна? Сразу говоришь "Ларису Ивановну хочу" и дело в шляпе! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2012, 02:20 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovsoftwarerТы спрашиваешь "Кто у телефона?" Назачем терять время и выбивать информацию, которая тебе напрочь не нужна? Сразу говоришь "Ларису Ивановну хочу" и дело в шляпе! Так кому ты это говоришь, если у телефона один абонент? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2012, 02:23 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
juventine, я бы сделал классификатор видов связи ВидыСвязи (IdВидаСвязи, НаименованиеВидаСвязи), куда можно было бы внести: стационарный телефон, сотовый телефон, e-mail, корпоративный телефон и т.д. далее сделал бы таблицу для хранения информации собственно о связи Связь (IdСвязи, Инфа, IdВидаСвязи, IdПерсоны, Комментарий). Инфа - поле для хранения номера телефона либо e-mail и т.д. Коментарий - текстовый комментарий, на всякий случай :-) Таким образом в одной таблице можно свести все виды связи и при необходимости расширять классификатор видов связи, например добавлять ICQ, Skype, что там еще появится через 10 лет. у меня кстати несколько сотовых, более 3 e-mail, есть ICQ, есть рабочий телефон, но нет домашнего телефона. с адресами поступил таким же образом, создал бы таблицу ВидыАресов (IdВидаАдреса, НаименованиеВидаАдреса), куда можно внести: Фактический, Регистрационный, Временный и т.д. И соответственно таблицу Адрес (IdАдреса, Адрес, IdВидаАдреса, IdПерсоны, Комментарий) Поле адрес может иметь разные вариации, вплоть до того, что будет заменено группой полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2012, 10:01 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
juventine, еще нужна табличка для людей Персона (IdПерсоны, ФИО, ДатаРождения). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2012, 10:03 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
softwarerТак кому ты это говоришь, если у телефона один абонент? Тому, кто трубку снял, ясно дело. Мне же через телефон не видать кто там у аппарата. Может, собака с милицией. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2012, 13:47 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
novexelfjuventine, еще нужна табличка для людей Персона (IdПерсоны, ФИО, ДатаРождения). Да уж, без даты рождения - какие могут быть телефонные разговоры. А так, чуть что - "Молодой ишо указывать! Иди, пятую нормальную форму учи!". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2012, 16:56 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
Cane Cat Fishernovexelfjuventine, еще нужна табличка для людей Персона (IdПерсоны, ФИО, ДатаРождения). Да уж, без даты рождения - какие могут быть телефонные разговоры. А так, чуть что - "Молодой ишо указывать! Иди, пятую нормальную форму учи!". Что Вы имеете ввиду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2012, 17:58 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
novexelfjuventine, я бы сделал классификатор видов связи ВидыСвязи (IdВидаСвязи, НаименованиеВидаСвязи), куда можно было бы внести: стационарный телефон, сотовый телефон, e-mail, корпоративный телефон и т.д. далее сделал бы таблицу для хранения информации собственно о связи Связь (IdСвязи, Инфа, IdВидаСвязи, IdПерсоны, Комментарий). Инфа - поле для хранения номера телефона либо e-mail и т.д. Коментарий - текстовый комментарий, на всякий случай :-) Таким образом в одной таблице можно свести все виды связи и при необходимости расширять классификатор видов связи, например добавлять ICQ, Skype, что там еще появится через 10 лет. у меня кстати несколько сотовых, более 3 e-mail, есть ICQ, есть рабочий телефон, но нет домашнего телефона. с адресами поступил таким же образом, создал бы таблицу ВидыАресов (IdВидаАдреса, НаименованиеВидаАдреса), куда можно внести: Фактический, Регистрационный, Временный и т.д. И соответственно таблицу Адрес (IdАдреса, Адрес, IdВидаАдреса, IdПерсоны, Комментарий) Поле адрес может иметь разные вариации, вплоть до того, что будет заменено группой полей. Все согласны с идеей? Мне кажется, что проще разнести информацию ( email, скайп и т.д. -- если несколько адресов почты, скайпов и т.д. ) по разным таблицам ( таблица). И сделать привязку к абоненту. Или я не прав? И, мне кажется, такая схема БД не совсем оптимальна в плане того, если придется менять, удалять какую-то инфу, добавлять. Т.к. сказать, могут возникнуть вопросы целостности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2012, 18:21 |
|
||
|
Проектирование схемы БД ИС Телефонно-адресная книга
|
|||
|---|---|---|---|
|
#18+
Кстати говоря, каким образом в предложенной мной модели строить индексы? По каким полям? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2012, 18:29 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=43&tid=1541456]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
27ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 320ms |

| 0 / 0 |
