DB Design - отправка JSON в REST API, который сохраняет данные в базе данных MySQL - PullRequest
0 голосов
/ 14 февраля 2019

Так что это скорее концептуальный вопрос.Могут быть некоторые фундаментальные понятия, которые я не совсем понимаю, поэтому, пожалуйста, укажите на любые ошибки в моем понимании.

Мне поручено разработать фреймворк, и часть его состоит в том, что у меня есть MySQL DB и REST API, который действует как уровень доступа к данным.Теперь пользователь должен иметь возможность анализировать различные данные (JSON, CSV, XML, текст, исходный код и т. Д.) И отправлять их в API REST, который сохраняет данные в БД.

Вопрос 1 : Должен ли я указать, что все данные, отправляемые в REST API, должны быть в формате JSON независимо от того, что анализируется?Это обеспечит (насколько мне известно) независимость от языка и даст REST API общий формат для работы.

Вопрос 2 : Что нужно указать в модели данных?Это что-то вроде универсальной модели или модель данных может изменяться на основе входящих данных?

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

Любая помощь / предложение очень ценится.Спасибо!

РЕДАКТИРОВАТЬ:

Во-первых, данные могут быть как структурированными (скажем, XML), так и неструктурированными (скажем, два текстовых файла).Я хочу, чтобы DAL мог обрабатывать и сохранять любые входящие данные (вот почему я подумал об интерфейсе REST перед БД).

Во-вторых, я также недавно думал о MongoDB как об опции и изучал ее (я никогда раньше не использовал NoSQL DB).Это имеет смысл использовать, если входящие данные в REST находятся в формате JSON.Из того, что я понял, я могу создать коллекцию в Монго.Имеет ли это больше смысла, чем использование реляционной базы данных ??

Наконец, что я хочу сделать с данными, так это то, что у меня есть инструмент, который выполняет своего рода анализ различий (думаю, git diff) наданные.Скажем, я отправил два XML-файла, и инструмент извлекает их из БД, выполняет анализ различий и сохраняет результат обратно в БД.

На основании этих требований, каков будет оптимальный путь для этого?

1 Ответ

0 голосов
/ 15 февраля 2019

Ответ на этот вопрос будет зависеть от того, какого рода это данные.Все ли эти разные типы данных используют разные обозначения для одних и тех же данных?Если так, то хранение в нормализованных таблицах базы данных - путь.Если это просто произвольные строки, которые имеют некоторую форму кодирования, то, вероятно, лучше всего хранить их в raw.

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

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

...