Ответы пользователя по тегу PHP
  • Как спроектировать базу данных?

    @hail3b
    Во первых вам нужнно научиться задавать вопросы а вернее их форматировать, в вашем вопросе нечитабельна структура таблиц.
    Во вторых литературы полно в сети выбирай самую свежую и вперед. Техническую литературу не нужно читать последовательно если вы с главой знакомы читайте следующую. Индивидуальную книгу под ваш проект не найти в ней всегда будет что-то "лишнее".
    В третьих вам нужно определиться с приоритетом поставленной задачи скорость выполнения или интерес/самообразование. Для новичка и не только это два противоположных друг другу приоритета и план выполнения будет разный. Если это заказ и нужно быстрее сделать, то берите готовый движок и настраиваете для себя. Если вам интересен сам процесс проектировки БД, то делайте все сами. Готовый проект также брать не стоит т.к. в нем нужно разбираться и он покажется вам очень сложный.

    По вашему вопросу:
    В вашей структуре есть ошибка, в каждой таблице есть поле логин а должно быть id ссылка на таблицу логин. Структура БД в вашем случае будет примерно такой:
    -- Пользователи
    CREATE TABLE user AS(
    	id int identity,
    	name varchar(128),
    	pass varchar(128)
    )
    -- Авторизация / сессия
    CREATE TABLE user_session AS(
    	id int identity,
    	user__id int,
    	timestamp datetime
    )
    -- Сообщения
    CREATE TABLE message AS(
    	id int identity,
    	post__id int,
    	user_session__id int,
    	subject varchar(255),
    	text varchar(max)
    )
    -- лайк / дизлайк
    CREATE TABLE message_like AS(
    	id int identity,
    	user_session__id int, -- пользователь кто плюсанул
    	message__id int,
    	value int -- плюс 1 / минус 1
    )
    Ответ написан
    Комментировать