# Блок заданий "Задание, Java Script, Node JS:" (2) *(Поскольку вопрос теоретический, файлов кроме данного readme.md не прикреплено)* 2. Есть объекты вида ```typescript // Я изменил название для наглядности и для корректного форматирования в .md { id : integer, time_stamp : timestamp, parent: : parentObject, contact: : {server: ..., email: ..., users: [name, ...]}, addresses : [adress1, ...], } ``` Какую структуру таблиц в реляционной БД нужно создать для хранения этой информации? Поскольку нам дано мало информации кроме абстрактного списка объектов, то вероятнее всего перед нами имеется главный объект со следующими полями *(Для наглядности, этот объект у нас будет неким контактом)*: ``` id | Идентификатор контакта time_stamp | Дата создания контакта parent | "Родительский" контакт contact | Контактные данные | +-> server | Адрес сервера +-> email | Адрес эл. почты +-> users | Список имён пользователя addresses | Список адресов контакта ``` Итак, мы сразу можем в основную таблицу с контактами записать : (id, time_stamp, parent(ссылка на id текущей таблицы)). Далее, для **contact** будет создана таблица с полями (row, obj_id, server, email). Для **users** будет создана таблица (row, contact_id, username). Для **addresses** будет создана таблица (row, obj_id, address). **Итого у нас получается следующая структура:** ``` ======================================================================================== table Objects: ======================================================================================== id (int) = NULL | AI, UQ, PK, NN | Идентификатор объекта time_stamp (timestamp) = NULL | NN | Дата создания контакта parent (int) = NULL | FK(Objects.id) | Идентификатор родительского объекта ======================================================================================== table Contacts: ======================================================================================== row (int) = NULL | AI, UQ, PK, NN | Идентификатор записи obj_id (int) = NULL | FK(Objects.id), NN | Ссылка на основной объект server (string) = NULL | NN | Адрес сервера email (string) = NULL | NN | Адрес эл. почты ======================================================================================== table Users: ======================================================================================== row (int) = NULL | AI, UQ, PK, NN | Идентификатор записи contact_id (int) = NULL | FK(Contacts.id), NN | Ссылка на запись контакта username (string) = NULL | NN | Имя пользователя ======================================================================================== table Addresses: ======================================================================================== row (int) = NULL | AI, UQ, PK, NN | Идентификатор записи obj_id (int) = NULL | FK(Objects.id), NN | Ссылка на основной объект address (string) = NULL | NN | Адрес ======================================================================================== ```