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