Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.04.2017, 18:50
Аспирант
Отправить личное сообщение для Ramundo Посмотреть профиль Найти все сообщения от Ramundo
 
Регистрация: 07.03.2015
Сообщений: 47

Как хранить данные статьи?
На странице написания статьи можно динамически добавлять разделы.
К примеру, нажимаю на кнопочку "добавить раздел", появляется div, содержащий input type = "text" для ввода названия раздела, и еще textarea для ввода текста раздела.

У меня два варианта сохранить все это дело:

1) Создать таблицу razdely , каждый раздел записать туда отдельной строкой
|id | article_id | name | text |

2) Объединить все разделы в один JSON-объект и записать в единственное поле | content | таблицы статей.

и как-то душа лежит ко второму.

Правильно ли это?
Если да, то как реализовать?

Можно ли так?
1) создать пустой объект A
2) найти все div'ы, которые предназначены для разделов
3) для каждого div'а создавать объект вида
{ name: (данные из input type = 'text'),
text: (данные из textarea) } и записывать его в A

Получившийся в итоге объект отправлять на сервер при сабмите формы, а там записывать в бд.

Или есть лучшие способы?
Ответить с цитированием
  #2 (permalink)  
Старый 01.04.2017, 19:01
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Ramundo
Правильно ли это?
Нет.
Ответить с цитированием
  #3 (permalink)  
Старый 01.04.2017, 19:08
Аспирант
Отправить личное сообщение для Ramundo Посмотреть профиль Найти все сообщения от Ramundo
 
Регистрация: 07.03.2015
Сообщений: 47

А как в таком случае будет правильнее?
Ответить с цитированием
  #4 (permalink)  
Старый 01.04.2017, 19:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Если |id | article_id | name | text | и реляционная база данных, то хранение в ней данных в виде строки, чем и является JSON, означает, что без очень большой крови в такой базе никогда не найти все статьи раздела или темы, не получить архивы статей под дате их добавления и т.п.

Надо ли еще что-то пояснять?
Ответить с цитированием
  #5 (permalink)  
Старый 01.04.2017, 19:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Я не знаю кто такие гайды и честно говоря и не хочу знать. Но если для них удобно держать данные в виде JSON, то причем тут реляционная СУБД? Какой смысл в ней, чтобы строки хранить? Ну так JSON можно и просто хранить и не только на сервере, но и на клиенте.
Ответить с цитированием
  #6 (permalink)  
Старый 03.04.2017, 13:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Ramundo,
на другом форуме попался этот же вопрос, причем трактовка его на 100% аналогична, без "гайдов" каких-то и прочего, о чем было написано в личку.

Поймите простую вещь - тип СУБД, организация в ней данных, то есть структура таблиц определяется не нажимаю на кнопочку "добавить раздел", появляется div, содержащий input type = "text" для ввода названия раздела, и еще textarea для ввода текста раздела, а типами данных, их назначением и структурой. А "нажимаю на кнопочку", это всего лишь пользовательский интерфейс к самой СУБД отношения не имеющий.

А вот это определение написания статьи можно динамически добавлять разделы и |id | article_id | name | text |, это уже ближе к структуре данных, к вопросам касающимся их представления в конкретной СУБД. И в данном случае речь идет о реляционной базе данных, для которых вместо структуры |id | article_id | name | text | впихнуть все в строку и поместить в базу, равноценно петле на шее. Это если понимать описанное вами как и следует.

Обязательно прочесть это и уяснить.

А если не важно все это, какие-то там гайды, для которых и нужно получать это как json-строки, а кто-то там с ними будут разбираться, то значит не ставьте вопросом "динамически добавляемые разделы, статьи в разделах.... и т.п.", иначе вас никто не поймет чего вам хочется. Если удовлетворяет хранение просто строк, значит и храните просто строки, не важно уже что там будет, это уже не забота СУБД, а того, кто ведает "гайдами".

Но есть СУБД, которые базируются и на JSON, типов баз данных много.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как с помощью javascript взять данные из одного файла html и закинуть в другой? rusik Общие вопросы Javascript 10 08.08.2016 12:11
Как из php файла передать данные в переменную javascript angelzzz Общие вопросы Javascript 36 01.07.2016 15:54
Как лучше хранить данные? jack3dm Общие вопросы Javascript 5 20.06.2016 01:02
Как отправлять обновленные данные определенному .json файлу? ratatyq Node.JS 0 16.04.2016 15:06
Контекстное меню как считать данные из таблицы xela1980 jQuery 25 31.05.2013 14:20