X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Делить или не делить таблицы БД, делема
Banderas
Banderas
Topic Starter сообщение 12.3.2011, 11:14; Ответить: Banderas
Сообщение #1


Делаю простой запрос, а конекта нет. В чем проблема?

Поля для авторизации пользователя хранить в самой таблице пользователя, или создать новую таблицу?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 12.3.2011, 13:21; Ответить: ZiTosS
Сообщение #2


Banderas,
Прошу прощения, проблема в банальной ошибке - не взял переменную в одинарные кавычки.. упс)

Когда делаем сайт на локалке, советую включить отображение всех ошибок (error_reporting в php.ini).
Если уж никак не можешь отследить ошибку в запросе, выведи напрямую ответ об ошибке:
[php]mysql_query("Запрос...") or die(mysql_errno().": ".mysql_error());[/php]
У тебя ошибка была в синтаксисе запроса. Всегда текстовые данные нужно помещать в кавычки (так же не забываем экранировать строковые данные...).

Раз уж создал тему, то хочу задать вопрос. Поля для авторизация пользователя хранить в самой таблице пользователя, или создать новую таблицу?

Поля для авторизации login и password я так понимаю... Это неотъемлемая часть таблицы пользователей. Не нужно вводить лишних усложнений, если они не рентабельны. Разбиение таблиц производят обычно когда есть соответствие записей в таблицах 1 <-> много, много <-> 1 или много <-> много.
У тебя же у каждого пользователя свои данные для авторизации, зачем здесь разбиение? Если бы можно было обощить какие-либо данные, то тут можно и разбивать на таблицы.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 12.3.2011, 14:21; Ответить: Banderas
Сообщение #3


ZiTosS, спасибо, знал что нужно включить error_reporting(E_ALL), но не знал где.
Нет, я имел ввиду поля подтверждения регистрации. При регистрации пользователь получает случайный код c sha1 шифрованием на имейл. В то же время код заноситься в БД. И переходя по ссылке я получаю логин пользователя и код. Если для данного пользователя, полученный код равен коду с БД - изменяю поле check_auth на 1 - отмечаю что пользователь подтвердил регистрацию.
Тоесть в моей БД пользователя добавилось ещё 2 таблицы, одна из которых больше не будет использоваться. Рационально ли это? Или после подтверждения регистрации просто удалить это поле (поле с sha1 кодом)?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 12.3.2011, 14:45; Ответить: ZiTosS
Сообщение #4


Banderas, рационально это все свести в одну таблицу, т.к. у тебя одному пользователю соответсвует один хеш для подтверждения и никак иначе.
Простой пример для понимания разбиения на таблицы.
Есть у нас БД Школа, в ней 1 таблица Ученики" с полями:
идентификатор (id)
ФИО
Класс
Характеристика
и т.д.

Так вот, понятное дело, что в данной таблице собраны все ученики школы с разных классов. Естественно часть учеников относится к одному классу, часть учеников относится к другому классу и т.д. Когда мы в поле класса будем хранить, например - "10А". Это текстовое поле. У некоторых учеников оно может повторяться, но получается что ученики одного класса никак не связаны по данному полю. Например, у нас задача, название класса 10Д изменили на 10Ж. Мы при редактировании учеников бывшего 10Д класса случайно забыли отредактировать записи нескольких учеников. При том бы нам пришлось редактировать каждую запись ученика из бывшего класса 10Д.

Теперь представим, что мы вынесли классы в отдельную таблицу "Классы". А из таблицы учеников ссылаемся на таблицу классов по полю id_class.
Захотелось нам теперь изменить название класса 10Д на 10Ж, это делается редактированием только одной записи в таблице "Классы".

Это называется - нормализация базы данных.
Т.е. одна запись из первой таблицы может использоваться много раз во второй таблице.
У нас, класс 10Ж из таблицы "Классы" будет много раз встречаться в записях таблицы "Ученики"
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
сообщение 13.3.2011, 20:18; Ответить: gaaarfild
Сообщение #5


И, в любом случае, у тебя одному пользователю соответствует один ХЭШ. Если ты его больше не используешь, то можешь просто очистить поле. Или добавить еще одно, например `used`. И если оно равно 1 - то более этот хэш не прокатит. Но использовать все лучше в одной строке для одного пользователя.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 18.3.2011, 17:53; Ответить: Banderas
Сообщение #6


Спасибо за ответы. Ещё небольшой вопрос. Стоит ли использовать $auth_code как хеш для запоминания пользователя. Тоесть хеш записывается в БД и в Куки. Если куки этого пользователя равны таблице из БД, то пользователя авторизован и ему не надо вводить логин и пароль.

Или лучше как то по другому офомить запоминания пользователя?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 18.3.2011, 19:04; Ответить: ZiTosS
Сообщение #7


Banderas, нет. Хеш для авторизации пользователя не подойдет. Украли куки у администратора - и имеем полный доступ к ресурсу... Разве это хорошо? Попозже опишу методику запоминания пользователя.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Создать видеоканал лучше в ютуб или телеграм?
10 uahomka 1813 24.3.2024, 4:21
автор: Alexand3r
Открытая тема (нет новых ответов) Если статья не в индексе Google - она уникальна или нет?
2 uahomka 802 20.3.2024, 11:17
автор: Vmir
Открытая тема (нет новых ответов) Где больше пробив на кликандер или попандер или попап трафике?
1 Boymaster 616 20.3.2024, 9:50
автор: Skyworker
Горячая тема (нет новых ответов) Выполню качественную верстку макетов или разработка собственного, быстро и не дорого
от 45$
123 webche 116761 17.3.2024, 7:09
автор: webche
Открытая тема (нет новых ответов) От какого экрана будут меньше уставать глаза OLED или IPS?
3 metvekot 984 12.3.2024, 16:25
автор: MisterBit


 



RSS Текстовая версия Сейчас: 29.3.2024, 19:46
Дизайн