storng
Новичок
Структура таблиц, выбор правильного алгоритма хранения тем блога
Здравствуйте, уважаемые
Тут вот делаем ресурсик типа блога, встал вопрос о строении таблиц и выборе наиболее оптимального решения в части расширения и нагрузок.
Суть:
Есть список сообщений блога, каждое сообщение (запись в БД) может принадлежать одной или нескольким категориям (к примеру “жизнь”, “садоводство”)
У посетителей будет возможность отображения списка тем той или иной единственной категории.
Т.е. при создании сообщения мы можем отнести его сразу к двум, трём и т.п. категориям, а просматривать посетители смогут выбрав только одну категорию.
Родилась такая идея, сделать две таблицы
1. Таблица сообщений (themes) в примитивном примере строение будет такое
ID сообщения ; Само сообщение
2. Таблица соответствия категорий и сообщений (category)
ID сообщения ; ID категории
Таким образом, при создании сообщения мы добавляем одну запись в таблицу 1, а также любое количество записей в таблицу 2 (добавляем столько записей, сколько категорий у данного сообщения)
Далее, посетитель может выбрать одну категорию для просмотра в ней сообщений, и мы делаем запрос в БД
SELECT * FROM themes WHERE id IN (SELECT id_theme FROM category WHERE id=’1’)
Т.е. получается двойной запрос, и во внутреннем запросе мы получаем очень большую выборку.
Встал вопрос, вообще такая структура хранения тем и категорий логичная?
Насколько большая нагрузка будет при подобном запросе к БД ?
Мне кажется, что это не оптимальный алгоритм, может быть будут у кого-нибудь мысли на этот счет?
Здравствуйте, уважаемые
Тут вот делаем ресурсик типа блога, встал вопрос о строении таблиц и выборе наиболее оптимального решения в части расширения и нагрузок.
Суть:
Есть список сообщений блога, каждое сообщение (запись в БД) может принадлежать одной или нескольким категориям (к примеру “жизнь”, “садоводство”)
У посетителей будет возможность отображения списка тем той или иной единственной категории.
Т.е. при создании сообщения мы можем отнести его сразу к двум, трём и т.п. категориям, а просматривать посетители смогут выбрав только одну категорию.
Родилась такая идея, сделать две таблицы
1. Таблица сообщений (themes) в примитивном примере строение будет такое
ID сообщения ; Само сообщение
2. Таблица соответствия категорий и сообщений (category)
ID сообщения ; ID категории
Таким образом, при создании сообщения мы добавляем одну запись в таблицу 1, а также любое количество записей в таблицу 2 (добавляем столько записей, сколько категорий у данного сообщения)
Далее, посетитель может выбрать одну категорию для просмотра в ней сообщений, и мы делаем запрос в БД
SELECT * FROM themes WHERE id IN (SELECT id_theme FROM category WHERE id=’1’)
Т.е. получается двойной запрос, и во внутреннем запросе мы получаем очень большую выборку.
Встал вопрос, вообще такая структура хранения тем и категорий логичная?
Насколько большая нагрузка будет при подобном запросе к БД ?
Мне кажется, что это не оптимальный алгоритм, может быть будут у кого-нибудь мысли на этот счет?