Хранение базы данных: чистое или закодированное?

Простой вопрос Как хранить телефонные номера и адреса электронной почты в базе данных? Просто чистый текст (или цифры), например, email@email.com, или лучше кодировать его ключом (немного похоже на то, как пароли сохраняются в базах данных). В этом случае он становится нечитаемым (и намного дольше), если вы не знаете ключ.

Единственная причина этого - если кто-то взломает базы данных, и скажем, в базе данных много важных электронных писем и телефонных номеров.

Как, например, connectedIn и facebook хранят все эти данные?

1 ответ

Номера телефонов - полуидентичные идентификаторы. Они не являются числовыми значениями или количеством. Они могут быть цифрами, а в некоторых случаях буквенно-цифровыми, например, 1-(800)-flowers.

Храните телефонные номера в виде текста, так как вы не хотите добавлять, вычитать, умножать или делить их. Вы можете нормализовать числа в код округа, а также код города и номер, если необходимо выполнить поиск по коду страны или города. Альтернативой является предоставление функций для доступа к текстовой строке телефонного номера и получения кода страны и кода города.

Еще один важный аспект: сохраняете ли вы коды форматов (символы скобок, пробелы или тире) для чисел '(123) 456-7890' или вы удаляете их и храните только цифры. Если вы хотите иметь полуединственность или иметь возможность искать равенство, просто сохраните цифры. Некоторые числа являются специальными кодами, такими как '*82', хотите ли они также использовать их как числа?

Если вы хотите получить какие-либо сведения из телефонного номера, тогда вы должны основывать структуру номера на текстовых полях на основе плана нумерации в Северной Америке https://en.wikipedia.org/wiki/North_American_Numbering_Plan.

Другие вопросы по тегам