Часть 1: Создание базы данных

Идея

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

Наш проект будет состоять из трех основных частей:

База данных MySQL

Нам нужно место для хранения наших контактов и соответствующей информации. MySQL имеет открытый исходный код и может легко справиться с этой работой за нас (SQLite, Postgres и т. д. тоже отлично сработают). Сначала база данных будет содержать четыре таблицы. Первую таблицу мы назовем ContactType. По сути, эта таблица будет содержать различные типы контактов в нашем списке. Это могут быть физические лица, предприятия и т. д. Поля для этой таблицы будут:

  • ID типа контакта
  • ContactTypeName

Второй таблицей будет таблица Контакты. Его работа будет состоять в том, чтобы хранить имя контакта, адрес и внешний ключ к таблице ContactType. Вот поля этой таблицы:

  • Идентификатор контакта
  • Контактное лицо
  • Контактный адрес1
  • Контактный адрес2
  • КонтактыГород
  • Контактное состояние
  • КонтактыZip
  • ID типа контакта

Далее у нас есть таблица Email. Логика наличия отдельной таблицы для электронных писем заключается в том, что люди и/или компании могут иметь несколько электронных писем. Эта таблица будет иметь внешний ключ к таблице Contact. Поля, включенные в эту таблицу, будут:

  • Электронный идентификатор
  • Идентификатор контакта
  • Электронное письмо

Наконец, есть таблица PhoneNumber. Как и в таблице Электронная почта, для каждого контакта может быть несколько адресов. Таблица Email также похожа на то, что она будет иметь внешний ключ для таблицы Contact. Вот поля:

  • идентификатор номера телефона
  • Идентификатор контакта
  • Телефонный номер
  • PhoneNumberExt

Угловой

Чтобы иметь возможность просматривать наш телефонный справочник без необходимости писать кучу SQL-запросов, мы будем использовать фреймворк Javascript Angular. Это позволит нам хорошо просматривать наши контакты. Дальнейшие подробности об этой части будут обсуждаться в более поздней части серии.

FastAPI

Поскольку интерфейсу потребуется способ связи с базой данных (серверная часть), мы будем использовать фреймворк Python FastAPI. В этом API будут конечные точки для добавления, обновления и удаления контактов в базе данных. Опять же, дальнейшие подробности об этой части будут обсуждаться в более поздней части серии.

Создание базы данных

Теперь, когда мы знаем, во что ввязываемся, пришло время создать базу данных. Ниже приведен скрипт, чтобы сделать именно это.

Как вы могли заметить, есть несколько полей, которые не содержат «NOT NULL». Причина этого в том, что для определенных полей нам не потребуются данные. Обратите внимание, что эти запросы необходимо выполнять точно в представленном порядке, иначе вы получите ошибки внешнего ключа.

Вывод

На данный момент у нас есть довольно хорошее начало для нашего нового каталога. Мы могли бы попытаться вставить некоторые контакты в базу данных. Однако, поскольку программисты довольно ленивы, нам нужно создать API, который будет выполнять всю эту работу за нас. Во второй части этой серии мы будем делать именно это. До новых встреч, ура!