За последние 24 часа нас посетили 22769 программистов и 1154 робота. Сейчас ищут 598 программистов ...

Создание БД (обучение)

Тема в разделе "MySQL", создана пользователем Taktreba, 23 окт 2017.

  1. Taktreba

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

    С нами с:
    11 янв 2017
    Сообщения:
    543
    Симпатии:
    132
    Помогите создать БД
    Задача, сделать (как обычно) форму для комментариев на сайте.
    Поля формы - имя, мыло, загружаемый файл (gif, jpg, png.), комментарий

    Хочу вас попросить помочь создать мне базу данных для этой задачи, делать буду сам, всю работу c sql можно нагуглить, но вот что нагуглить сложно это структуру. Ее прошу мне подсказать

    Хочу сделать максимально нетривиально, что бы научиться делать важные манипуляции и зацепить важные аспекты при создании БД (такие как "вторичные и первичные ключи" и прочее)
    Кому не сложно, с головы напишите сколько таблиц нужно, какие отношения и обязательные поля и их типы.

    (я так думаю что мне нужно три таблицы - users, commend, images) но как правильно связать их пока не сильно волоку, надеюсь после этого задания разберусь
     
  2. Алекс8

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

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    таблица комментов messages
    id автоинкремент (int)
    pid - родительский коммент - на тот случай если хочется древовидную систему комментов
    body - тело сообщения (text)
    member_id - ид того кто постит (int)

    таблица юзеров members
    id автоинкремент
    name
    email
    hash_password
    .... и т.д. - зависит от фантазии

    таблица вложений attachments
    id автоинкремент
    url - относительная ссылка на вложение
    type - это поле нужно на тот случай если в комментах не только изображения предусматриваются
    member_id
    message_id

    ну а дальше уже все зависит от хотелок.. даты, даты редактирования, айпи пользователя, айпи постера, айпи того кто вложение сделал и т.п.

    в таблице вложений я написал
    member_id
    message_id
    в принципе это немного избыточно... достаточно было бы связать только с сообщением - а оттуда вычислять кто владелец..
    но если вдруг захочется в профиле показать пользователю все его вложения - то дополнительное поле как бы будет полезно..

    сообщения и вложения можно связать внешними ключами.. что бы удаляя сообщение - удалялись все его вложения..
    но это опять же на любителя))
     
    Taktreba нравится это.
  3. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Не ищешь ты легких путей
     
  4. Taktreba

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

    С нами с:
    11 янв 2017
    Сообщения:
    543
    Симпатии:
    132
    я или коммент выше? давай подробней что лучше и как сделать?
     
  5. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    если цель просто потренироваться по работе с sql, то пойдет. Если вопрос в реализации наиболее просто структуры под то, что ты описал, как ТЗ, то она реализуется одной таблицей.