Тут главное не слишком нормализировать, потому что все зависит от конкретного приложения, и иногда приходиться денормализацию делать, для повышение производительности.
В вашем же случае, делайте так как будет удобнее работать с данными, а не например делать две таблицы для пользователей (зареганых и не зареганых)...
Я размышлял следующим образом:
У комментария обязательно есть:
1. его id
2. id статьиб к которой он относится
3. сам коммент
4. его статус
Далее:
1. id пользователя, если он зарегистрирован
2. дальше по id пользователя можно узнать все о нем
Или:
1. имя и email пользователя, если он незарегистрирован... и все
Ну еще есть рейтинг, который тоже может быть а может и нет.
Если все слить, то поля id пользователя, рейтинг, имя и email пользователя где-то будут, а где-то будут пустовать. Вот о чем я.
Я как бы планировал так, чтобы каждая таблица содержала минимум NULL
Так ничего и не понял...
Нужно так разбивать или делать большие таблицы для всего.
Статьи, категории, комменты, пользователи...
К чему тогда столько писанины о нормализации?
Да, простенький блог, но базу хочется делать как для чего-то большого, в будущем может быть расширяемого.
Contr
Имена конечно будут поменьше. Это сейчас, чтобы понимать.
А по поводу char - насколько я помню, то пробелы добиваются в БД, но при выборке они отбрасываются.
vanicon
Да, наверно надо кое-что объединить. Но например Дискрипшен категорий можно же вывести в отдельную таблицу. Так как скорее всего его не будет.
LIME
Спасибо за ссылку. Читаю
ЗЫ
Вот еще не пойму, какую таблицу делать для картинок? Хранить там id и линки на картинки?
Ну так как лучше?
Делать несколько таблиц так, чтобы в них были заполнены все поля. Или обобщить немного и пусть будет NULL в некоторых полях?
Прочитал, что вроде объединение замедляет отклик БД.
vanicon
В таблице Category_info пока олин столбец - дискрипшен. Он может быть, а может и не быть (скорее всего).
Рейтинг у комментов и статей может быть, а может и нет.
Комменты могут быть от зарегистрированных пользователей, а могут быть от гостей.
Если все объединить, то в таблицах будет много пустых полей. А так во всех таблицах практически все поля будут заполнены. Запросы будут посложнее, но их ведь только раз написать.
Вообщем я как бы следую рекомендациям из книг. В частности МартинГрабер-SQL. Вроде как считается не очень хорошо, если в таблице много пустоты. Размер БД от этого однозначно увеличится. (Добавление)
Ps
Не знаю, может и правда переборщил...
Вроде как созрел уже что-то писать. Решил сначала написать блог, для себя любимого)))
И тренировка и пригодится.
Естественно начал с БД. Сижу уже вот 3 вечера - думаю.
Вообщем будут статьи от меня, и пока только от меня. Пока...
Комментарии как от зарегистрированных пользователей, так и от незарегистрированных.
Ну и категории конечно.
Вот че я надумал
Вот затык у меня с последней табличкой. Нужна ли она вообще? Это типа какие-то настройки сайта.
Еще что-то туплю с таблицей для галереи: что там храниь? Ну название, title, alias...
Ну и как вообще оно? Я на верном пути?
Может нужно что-то еще? (Добавление) ЗЫ
Переводы строк коверкают все...
Лучше скопировать в notepad++.
Что за 1 после массива? После вывода print_r
Ни один массив не показывает 1, кроме этого.
В исходном коде 1 идет сразу после вывода print_r (Добавление)
если через print_r вывести одну ячейку из массива $user_info, то в конце выводимого значения также стоит 1... (Добавление)
PS
Так вот вопрос, как мне вытянуть $db_error так, чтобы никто не видел этой строки. К примеру записать значение этой переменной в лог.
А еще лучше, вывести сообщение юзеру и продолжить выполнение скрипта. Сейчас, если меняю к примеру пароль БД, то вываливается белый экран с ошибкой. (Добавление)
сделать $db_error глобальной..?
а как продолжить выполнение, если коннект не удался?
Ну сделайте по ролям тогда доступы, и проверяйте, если админ, пускать всюду, если пользователь, то пускать сюда, но не пускать туда... Конечно, для пользователей тоже нужно будет. Иначе как вы планируете фиксировать их действия на сайте? Хотя можно куками тоже, но я их не использую, если вам оно надо - можете использовать, никто не ограничивает )
Ну оно так и есть.
$user_status = 1(админ), 2(модер), 3(юзер), 0(гость)
teddy пишет:
В файле form.php подразуемается, что там лежат поля для ввода логина и пароля при авторизации...
Ну а дальше делать что-то, проверяя на наличие сессии
Так и есть. При входе в админку сразу проверка на наличие id в сессии. Если нет, то на форму авторизации. Успешно - в админку (если $user_status = 1)
teddy пишет:
Что бы не было подобных проблем, создайте чертеж вашего проекта для себя же, продумайте приблизительный алгоритм, что и где будет лежать, как будет работать..
В голове как бы все вижу, но знания php еще слабоваты.
Набрел тут вчера на видеолекции Специалиста - ВЕЩЬ! Хорошо мужик рассказывает
Так что лучше загонять в массив сессии? id или логин-пароль?
Думаю одного логина будет достаточно при грамотном подходе. А на основе этой сессии уже разруливать код...
Хотя тут все зависит от того, что вы хотите сделать ) я так особо не вчитывался во весь топик, особенно в код... Тоесть если пользователь авторизован, то записываем логин в сессию, а дальше уже используем логин для того, что нам нужно... А поля для авторизации убираем. И лучше запретить к полям для авторизации доступ вообще через прямой путь, коль уж авторизовались...
Ну форма авторизации только через index.php админки открывается, больше никак. Или я что-то не понял?
Вообще это форма авторизации только для админа. Для юзеров будет другая. Вот я что думаю... для юзеров тоже сессии использовать?