За последние 24 часа нас посетили 17865 программистов и 1610 роботов. Сейчас ищут 872 программиста ...

Таблица гостевой

Тема в разделе "MySQL", создана пользователем ??? Соловьев Е ш326, 5 авг 2014.

  1. Доброго времени суток дорогие форумчане.
    При проектировании БД возникли некоторые вопросы.
    Когда делал таблицу для новостной ленты все было просто:
    Код (Text):
    1. id - уникальный номер поста
    2. date - дата создания
    3. author - уникальный id пользователя, создавшего пост
    4. head - заголовок поста
    5. body - содержимое поста
    Но при проектировании таблицы для гостевой возникла такая проблема:
    В новостях поле author целочисленного типа, соответствующее уникальному id пользователя из таблицы user, но в гостевой могут писать ВСЕ, даже незарегистрированные пользователи. Надумал заносить в author ip юзера, но как тогда быть с id пользователя? Ведь если пользователь прошел аутентификацию, то на его посте (или комментарии) должна быть ссылка на данного пользователя по его id. Или сделать поле author текстовым и заполнять как "id_"+user id и "ip_"+user ip соответственно? Или автоматически давать временную регистрацию для юзеров с присвоением id по ip и заносить в базу?

    С уважением Евгений.
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Что-то вы утрируете важность ситуации. Если пользователь зарегистрирован, то ссылка на его профиль есть, если нет, то пользователь == "Гость". Регистрируясь, пользователь как бы дает добро на свою "публичность", а гостю - гостево. И ему совсем не понравится тот факт, что без его ведома, ему будут давать, пусть даже временную, но регистрацию.

    P.S. Кстати, про IP - это плохой вариант в принципе. Многие провайдеры выдают динамические IP-шники, которые со временем меняются у пользователя. А еще есть так называемые серые IP - это когда на одном IP может седеть десяток (если не больше) пользователей.
     
  3. Вы не совсем верно поняли. Регистрации как таковой нет. Я лишь заношу в БД ip пользователя и выделяю ему уникальный id, который занесу в таблицу гостевых записей. С одной стороны можно было бы просто оставлять поле author в этом случае пустым, но тогда сложнее будет пресекать флуд, ибо защита через сессии обходится простым путем удаления куки.