MySQL

Хранение тегов в базе данных

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

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

Вот вроде неплохая ссылка http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html , там описаны три способа хранения информации о тегах с нарисованными схемами БД. А в разделе "Further reading" есть еще ссылки на разные интересные вариации.

На самом деле, выбор неочевиден. Четко определите, что вы с тегами будете делать. Может подойдет и решение попроще.

Внешние ключи и транзакции в MySQL

Есть ли в MySQL поддержка внешних ключей (foreign keys) и транзакции (transactions)? Как ее включить?

Есть и поддержка транзакций, и поддержка внешних ключей.

Если вам нужны только транзакции, используйте тип таблиц BerkeleyDB (по умолчанию MyISAM).

И внешние ключи, и транзакции поддерживаются типом InnoDB.

InnoDB требовательнее к ресурсам, чем BerkeleyDB. Оба этих типа требовательнее, чем MyISAM. Поэтому часто хостеры отключают поддержку этих типов таблиц. При выборе хостинга имеет смысл уточнить этот момент.

Конкатенация при группировке GROUP BY

Как объединить строковые поля при запросе с группировкой GROUP BY?

Как сделать sum() / слияние / конкатенацию для строковых значений полей по группам?

Начиная с версии 4.1. в MySQL добавлена GROUP BY функция GROUP_CONCAT(). Она предоставляет достаточно широкие возможности по настройке конкатенации, в том числе сортировку и добавление разделителей.

Детальное описание синтаксиса GROUP_CONCAT() в руководстве по MySQL.

Ошибка при попытке экспорта базы с помощью phpMyAdmin на сервере с Windows

Как экспортировать MySQL базу данных? С помощью phpMyAdmin это сделать не удается. Сообщение об ошибке: "Подключение к серверу сброшено". Сервер работает на Windows.

Воспользуйтесь функцией экспорта из EMS SQL Manager 2005 for MySQL (~15 Мб). При подключении к базе данных не забудьте правильно настроить кодировки.

Отзывы о MySQL Front

Стоит ли пользоваться MySQL Front?

Неудобная программа, к тому же нестабильная. Лучше пользоваться бесплатной MySQL Administrator или платной EMS SQL Manager 2005 for MySQL.

Что почитать по MySQL

Посоветуйте книгу по MySQL?

Можно обойтись без книги, скачав русский хелп. Там есть и quick start. Очень качественный документ, в котором можно найти почти все ответы.

Подскажите хорошее клиентское приложение для администрирования MySQL баз данных

Приятно работать с EMS SQL Manager 2005 for MySQL (~15 Мб). Есть даже редактор для рисования моделей данных. А в нем даже есть возможность обратного инжиниринга. Программа платная, но есть trial-версия. Есть и бесплатная lite-версия.

RSS-материал

Если ищете хостинг, возможно вас заинтересует django.