Как мне сохранить данные XML в базе данных mysql? Я не хочу внешних ключей, как сумасшедшие

Ответ @aaronheckmann работал для меня, но мне пришлось заменить return doc.tags.length; на return doc.tags != null;, потому что это поле содержит null, если оно не совпадает с условиями, записанными внутри заполнения. Итак, окончательный код:

query....
.exec(function(err, docs){
   docs = docs.filter(function(doc){
     return doc.tags != null;
   })
   // do stuff with docs
});

13
задан TIMEX 5 February 2010 в 00:27
поделиться

2 ответа

"Обычный" способ - хранить XML в CLOB (символьный большой объект), а MySQL поддерживает CLOB с 4 типами данных:

  • TINYTEXT - столбец CLOB с максимальной длиной 255 (2 ** 8–1) символов.
  • ТЕКСТ - столбец CLOB с максимальной длиной 65 535 (2 ** 16 - 1) символов.
  • MEDIUMTEXT - столбец CLOB с максимальной длиной 16 777 215 (2 ** 24 - 1) символов.
  • LONGTEXT - столбец CLOB с максимальной длиной 4 294 967 295 или 4 ГБ (2 ** 32 - 1) символов.

Использование того или другого зависит от ваших потребностей.

28
ответ дан 1 December 2019 в 19:23
поделиться

Все зависит от того, что вы хотите, чтобы ваша база данных делала с XML.

  • Если вы просто хотите сохранить документ XML для последующего извлечения, просто воспользуйтесь блоком или текстовым полем. Также проверьте документы MySQL.
  • Если вы пытаетесь дамп/импортировать модель, используйте mysqldump.
  • Если вы планируете сделать запрос по XML, то, скорее всего, вам следует использовать родную базу данных XML, такую как eXist-db.
6
ответ дан 1 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: