Как лучше спроектировать БД под телефонный справочник?
то что у человека много телефонов это очевидно
а вот то, что у телефона много людей - такого ни в одном телефонном справочнике не видел
плюс непонятен смысл отдельного хранения префиксов, если они появились в результате нормализаций, то это явный перебор имхо
в остальном, тут все настолько просто, что можно долго не думать
предложеный вариант будет уже вполне юзабельным
Я бы немного параметризовал категории телефонов:
- тип телефона (мобильный, домашний, рабочий)
- используется/не используется
- публичный/личный
- комментарий (например, "звонить с 9 до 18")
Если в базе партнеров будут юр.лица, то добавил бы еще одно поле, скажем "категория телефона" (ресепшн, факс, бухгалтерия, отдел. кадров, ген. дир, ну и .т.д. мысль понимаешь)
С префиксами, идея не понятна, хотя можно каждый номер раскладывать в несколько полей: Страна-Код города-Номер-добавочный.
В принципе, таблиц с данными должно быть две-три, плюс справочники.
Собственно, вопрос заключается в том, чем плоха такая структура базы данных ... поля manID - индекс человека ... и manName - его имяЭта структура плоха (а вернее, ужасна) своей вопиющей неполиткорректностью, так как она дискредитирует женщин! Срочно переименуй поля в personID и personName соответственно, пока феминистки не увидели!
а твое предложение дискредитирует российскую милицию! Потому что милиция — это не человек, это много людей! Надо срочно переименовать в ContactID и ContactName
непонятно, как в этих случаях осуществляется распознавание номера: в базе данных должно лежать какое-то соответствие префиксов или оператор телефонной связи при входящем звонке должен присылать такое соответствие?
Если в базе данных, то как должна выглядеть соответствующая таблица?
![:)](/images/graemlins/smile.gif)
По поводу форматов итогового набора цифр при звонке, нужно заботать матчасть по логике обработки проходящих через телефонную станцию звонков. Азы, чтоб разговор поддержать знаю, но для прикладных задач нужен уже документ с перечислением стандартов и правил.
непонятно, как в этих случаях осуществляется распознавание номера: в базе данных должно лежать какое-то соответствие префиксов или оператор телефонной связи при входящем звонке должен присылать такое соответствие?Думаю, что в базе должны храниться телефонные в международном формате, а если где-то используются другие варианты (как эта восьмерка то прямо вшить в код правила преобразования.
Оставить комментарий
7489098
Нужно спроектировать одну несложную реляционную базу данных - телефонную книгу, причем, естественно, так, чтобы она повторяла функциональность любого телефонного справочника в любой из созданных моделей телефонов.Собственно, вопрос заключается в том, чем плоха такая структура базы данных и как ее можно улучшить:
в базе 3 таблицы, первая содержит поля manID - индекс человека, занесенного в справочник, и manName - его имя; вторая содержит поля numberID - идентификатор конкретного телефона, basic_digit - цифры номера без префикса, prefix1, prefix2, prefix3 - возможные префиксы номера, типа +7, 8, +7495; третья таблица содержит связи между ними, а именно поля manId и numberID
Вроде, первые 3 нормальные формы в каждом отношении присутствуют.
Итак, чем плохо такое решение и как его можно улучшить?