|
|
|
простенькая база данных
|
|||
|---|---|---|---|
|
#18+
Нужно спроектировать одну несложную реляционную базу данных - телефонную книгу, причем, естественно, так, чтобы она повторяла функциональность любого телефонного справочника в любой из созданных моделей телефонов. Собственно, вопрос заключается в том, чем плоха такая структура базы данных и как ее можно улучшить: в базе 3 таблицы, первая содержит поля manID - индекс человека, занесенного в справочник, и manName - его имя; вторая содержит поля numberID - идентификатор конкретного телефона, basic_digit - цифры номера без префикса, prefix1, prefix2, prefix3 - возможные префиксы номера, типа +7, 8, +7495; третья таблица содержит связи между ними, а именно поля manId и numberID Вроде, первые 3 нормальные формы в каждом отношении присутствуют. Итак, чем плохо такое решение и как его можно улучшить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2008, 20:25 |
|
||
|
простенькая база данных
|
|||
|---|---|---|---|
|
#18+
Да ничем в принципе не плоха. Только в интерфейсе этой телефонной книги надо будет четко отличить операции "Вася переехал и у него поменялся телефон" (а у Наташки остался какой был) и "у Васи с Наташей сменили номер телефона". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2008, 23:32 |
|
||
|
простенькая база данных
|
|||
|---|---|---|---|
|
#18+
bolt2Итак, чем плохо такое решение и как его можно улучшить? Слишком сложно. Тут достаточно одной таблицы (имя чела, номер, префиксы). Хотя префиксы обычно настраиваются отдельно и представляют собой разные подстановки в зависимотсти от локализации звонящего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2008, 04:10 |
|
||
|
простенькая база данных
|
|||
|---|---|---|---|
|
#18+
mcureenabХотя префиксы обычно настраиваются отдельно и представляют собой разные подстановки в зависимотсти от локализации звонящего. я правильно понял, что тогда лучше будет хранить отдельно таблицу семейств префиксов с полями prefixID, prefix1, prefix2 и prefix3, а в таблице номеров тогда заменить prefix1, prefix2 и prefix3 на prefixID? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2008, 10:37 |
|
||
|
простенькая база данных
|
|||
|---|---|---|---|
|
#18+
bolt2 mcureenabХотя префиксы обычно настраиваются отдельно и представляют собой разные подстановки в зависимотсти от локализации звонящего. я правильно понял, что тогда лучше будет хранить отдельно таблицу семейств префиксов с полями prefixID, prefix1, prefix2 и prefix3, а в таблице номеров тогда заменить prefix1, prefix2 и prefix3 на prefixID? В таблице номеров prefixID не нужен. Префикс определяется правилами набора, а они меняются в зависимости от используемой телефонной сети, в плоть до необходимости пользования услугами телефонистки. Правильно иметь план набора, чтобы различать номера записанные в международном формате, местные номера, внутренние номера офисной АТС и т.п.. В большинстве случаев номер нужно записывать в международном формате, тогда АТС сама сообразит какие префиксы нужно применять для проключения вызова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2008, 11:33 |
|
||
|
простенькая база данных
|
|||
|---|---|---|---|
|
#18+
mcureenab В таблице номеров prefixID не нужен. Но все же какое-то соответствие префиксов в памяти телефона(то есть вот в этой его базе) сохранять-то надо! например, поступает звонок +79261234567, а в телефонной книге за неким абонентом прикреплен номер 89261234567, как распознать звонящего? посылать запросы на АТС типа "а извините, префикс +7 - это то же самое, что и 8?" - наверное, долго, проще хранить эту информацию во внутренней памяти телефона и к ней обращаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2008, 11:51 |
|
||
|
простенькая база данных
|
|||
|---|---|---|---|
|
#18+
bolt2 mcureenab В таблице номеров prefixID не нужен. Но все же какое-то соответствие префиксов в памяти телефона(то есть вот в этой его базе) сохранять-то надо! например, поступает звонок +79261234567, а в телефонной книге за неким абонентом прикреплен номер 89261234567, как распознать звонящего? посылать запросы на АТС типа "а извините, префикс +7 - это то же самое, что и 8?" - наверное, долго, проще хранить эту информацию во внутренней памяти телефона и к ней обращаться. Всегда используйте международный формат телефонного номера и таких проблем с АОНом не бует. Кроме того код 8 используется в России, тогда как во многих друих странах спользутся код 00 или + в сетях мобильной связи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2008, 04:55 |
|
||
|
простенькая база данных
|
|||
|---|---|---|---|
|
#18+
mcureenab Всегда используйте международный формат телефонного номера и таких проблем с АОНом не бует. Кроме того код 8 используется в России, тогда как во многих друих странах спользутся код 00 или + в сетях мобильной связи. Да не интересует то, как надо номер в телефонную книгу заносить! Интересует, как осуществляется распознавание номера, хранящегося в телефонной книге (например, если есть запись, начинающаяся на 8, а звонок идет +7, или если звонящий записан как 8<внутренний по стране код города><номер абонента>, а в международном формате у него другое представление: +7<международный код города><номер абонента>.) Здесь какие механизмы (реализации) распознавания? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 12:00 |
|
||
|
простенькая база данных
|
|||
|---|---|---|---|
|
#18+
bolt2 mcureenab Всегда используйте международный формат телефонного номера и таких проблем с АОНом не бует. Кроме того код 8 используется в России, тогда как во многих друих странах спользутся код 00 или + в сетях мобильной связи. Да не интересует то, как надо номер в телефонную книгу заносить! Интересует, как осуществляется распознавание номера, хранящегося в телефонной книге (например, если есть запись, начинающаяся на 8, а звонок идет +7, или если звонящий записан как 8<внутренний по стране код города><номер абонента>, а в международном формате у него другое представление: +7<международный код города><номер абонента>.) Здесь какие механизмы (реализации) распознавания?Если случай простой, т.е. набран только номер абонента (без всяких там "колец" (обратного вызова)), то все просто: Полный номер = <код выхода><код выхода на оператора><код города><номер телефона абонента>. При этом, строка <код города>+<номер телефона абонента> ВСЕГДА составляет 10 знаков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 12:17 |
|
||
|
простенькая база данных
|
|||
|---|---|---|---|
|
#18+
Станислав С...кий При этом, строка <код города>+<номер телефона абонента> ВСЕГДА составляет 10 знаков. 10 знаков, справедливо для стран с закрытой системой нумерации. Но есть страны, где количество цифр в номере является переменной величиной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 04:51 |
|
||
|
простенькая база данных
|
|||
|---|---|---|---|
|
#18+
bolt2 mcureenab Всегда используйте международный формат телефонного номера и таких проблем с АОНом не бует. Кроме того код 8 используется в России, тогда как во многих друих странах спользутся код 00 или + в сетях мобильной связи. Да не интересует то, как надо номер в телефонную книгу заносить! Интересует, как осуществляется распознавание номера, хранящегося в телефонной книге (например, если есть запись, начинающаяся на 8, а звонок идет +7, или если звонящий записан как 8<внутренний по стране код города><номер абонента>, а в международном формате у него другое представление: +7<международный код города><номер абонента>.) Здесь какие механизмы (реализации) распознавания? В моём телефоне, похоже, определяется номер у которого совпадает наибольшее число цифр с конца. С некоторой вероятностью ошибки этот трюк срабатыват, ведь не так много знакомых у которых последние цифры номера совпадают, да и в случае ошибки ничего страшного не случиться. Если хотите иметь точный результат, не зависящий от местной АТС используйте международный формат. Международный формат просто преобразовать в местный, тогда как обратное преобразование требует много дополнительных сведений, которые пользователь не всегда имеет привычку заносить в БД. Например в Росиии 8, это был код выхода на межгород, но с выходом на рынок МТТ, появился дополнительный префикс, который позволяет выбирать между Ростелеком и МТТ, и одновременно между международной и междугородней связью, а со временем 8 заменят на 00, и вся ваша телефонная книга с 8ками вообще перестанет работать. В прочем, вы можете завести правило, если начало номера совпадает с префиксом выхода на межгород, то этот префикс нужно заменить на код страны и т.п. Т.е. завести БД подстановок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 05:07 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35121652&tid=1544043]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
191ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 254ms |
| total: | 532ms |

| 0 / 0 |
