За последние 24 часа нас посетили 18822 программиста и 1702 робота. Сейчас ищут 716 программистов ...

Оптимальный вариант структуры БД

Тема в разделе "MySQL", создана пользователем Kaufmann, 11 ноя 2012.

  1. Kaufmann

    Kaufmann Активный пользователь

    С нами с:
    3 май 2012
    Сообщения:
    27
    Симпатии:
    0
    Здравствуйте! Прошу совета по организации структуры базы данных. К примеру, мне требуется хранить в БД комментарии к разным постам... Так вот, как и почему лучше организовать структуру.

    1 Вариант:
    Хранить комментарии в отдельной таблице, с уникальным идентификатором для каждого и указанием идентификатора поста, к которому эти комменты относятся.
    1 вчерашний коменнтарий 5 пост
    2 мой комментарий 5 пост
    3 коменнтарий отца 5 пост

    2 Вариант:
    Хранить комментарии в отдельной таблице, ЧЕРЕЗ ЗАПЯТУЮ, указав идентификатор поста к которому они относятся.
    1 вчерашний коменнтарий,мой комментарий,коменнтарий отца 5 пост

    ---
    Скорее всего первый вариант наиболее правилен... Но второй может быть проще, т.к. НИКАКИХ МАНИПУЛЯЦИЙ С ЭТИМИ ЗАПИСЯМИ В ДАЛЬНЕЙШЕМ НЕ БУДЕТ! Если все так, прошу также разъяснить случай КОГДА ДОПУСТИМО ИСПОЛЬЗОВАНИЕ ВТОРОГО ВАРИАНТА.
     
  2. Swapf

    Swapf Активный пользователь

    С нами с:
    8 окт 2012
    Сообщения:
    82
    Симпатии:
    0
    Адрес:
    Россия, Самарская обл, Сызрань
    Конечно, первый вариант. Странные мысли Вам в голову лезут. Примерная структура, навскидку:
    Posts:
    id | blog_id | title | content | created_by | date_created | date_updated | post_type | status | allow_comments | rating | answers
    Comments:
    id | post_id | content | created_by | date_created | status

    Если используешь второй вариант - как будешь удалять или редактировать неугодный коммент? Да и вообще это неправильно. Много гемора будет ненужного.
    Второй вариант можно использовать так: Например, тебе нужно хранить результаты голосования по опросу. Опрос - разновидность поста, например, post_type = 1 - это пост, post_type = 2 - голосование. Каждый пост имеет все также множество комментариев. При голосовании сюда ничего не пишем. Мы пишем в Posts.answers результаты голосования в формате json. С json вообще очень удобно работать, редактировать и т.д. Очень полезный формат, советую, тем более mongodb на json работает.
    В общем, почитай на тему 'json php'. Пригодится, если тебя мучают подобные вопросы)
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Единственно верный
     
  4. Kaufmann

    Kaufmann Активный пользователь

    С нами с:
    3 май 2012
    Сообщения:
    27
    Симпатии:
    0
    Спасибо! Так и сделаю!