Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Структура таблицы
 
 автор: Sin   (24.10.2004 в 21:28)   письмо автору
 
 

Скажите пожайлуста каким образо лучше создать таблицу для зарегившихся юзеров.
Юзера имеют 3 уровня. Админ, модератор, пользователь. Должно хранится имя юзера и мыло, а также их посты. Подскажите как это лучше сделать. А то я совсем уже запутался со всякими ключами. И никак не могу взять в тол как ими пользоваться.

   
 
 автор: cheops   (24.10.2004 в 21:46)   письмо автору
 
   для: Sin   (24.10.2004 в 21:28)
 

Для этого лучше завести таблицу users, состоящую из 4-х полей
CREATE TABLE users (
  id_user int(11) NOT NULL auto_increment,
  name tinytext NOT NULL,
  email tinytext NOT NULL,
  status_user enum('moder','admin','user') NOT NULL default 'user',
  PRIMARY KEY  (id_user)
) TYPE=MyISAM;

id_user - первичный ключ, снабжённый атрибутом auto_increment;
name - имя пользователя;
email - e-mail пользователя;
status_user - статус пользователя, поле имеющее тип ENUM и принимающее три знанчения: 'moder' для модератора, 'admin' для администратора и 'user' - для простых смертных, являющееся значением по умолчанию.
Принадлежность посетителя к посту лучше указывать в записи для поста - выделить в таблице, где храняться сообщения дополнительное поле id_user и заносить в него первичный ключ посетителя, которому принадлежит данный пост.
Запись для добавления нового посетителя может выглядеть следующим образом:
INSERT INTO users VALUES (NULL,'cheops', 'cheops@softtime.ru','user');

   
 
 автор: Sin   (25.10.2004 в 00:03)   письмо автору
 
   для: cheops   (24.10.2004 в 21:46)
 

Спааси вроде понял. Потренировался на локалке. Авот для чего нужен TYPE=MyISAM;в конце запроса.
А с остальным я разобрался. А вот еще вопрос. А вот как лучше сделать таблицу для постов. Я в проектирование БД еще полный ноль. А вы люди с опытом - знаете как поудобней сделать :)

   
 
 автор: cheops   (25.10.2004 в 00:18)   письмо автору
 
   для: Sin   (25.10.2004 в 00:03)
 

Структура таблицы для гостевой книги можно сделать следующей
CREATE TABLE messges (
  id_message int(11) NOT NULL auto_increment,
  message text NOT NULL,
  id_user int(11) NOT NULL default '0',
  puttime datetime NOT NULL default '0000-00-00 00:00:00',
  hide enum('show','hide') NOT NULL default 'show',
  PRIMARY KEY  (id_message)
) TYPE=MyISAM;

id_message - первичный ключ таблицы, снабжённый атрибутом auto_increment;
message - поле для хранения сообщения
id_user - вторичный ключ для таблицы users, по нему определяется имя и e-mail автора сообщения
puttime - время добавления сообщения
hide - поле типа ENUM, необходимое для модерирования. Принимает два значения 'show' для сообщений доступных с сайта, и 'hide' для сообщений которые были скрыты модератором.

Строка TYPE=MyISAM; указывает тип таблицы, подробнее об этом можно почитать по ссылке.

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=83

   
 
 автор: Sin   (26.10.2004 в 16:16)   письмо автору
 
   для: cheops   (25.10.2004 в 00:18)
 

Ага все вроде понятно. Только вот как добавлять время в puttime. Ведь по умолчанию там будет '0000-00-00 00:00:00'
И вот еще маленький вопросик, а если к в таблице где находятся данные юзера добавить столбец avatars где будут хранится аватары пользователей. Как их туда засовывать и забирать при надобности?

   
 
 автор: glsv (Дизайнер)   (26.10.2004 в 20:33)   письмо автору
 
   для: Sin   (26.10.2004 в 16:16)
 

>И вот еще маленький вопросик, а если к в таблице где находятся данные юзера добавить столбец avatars где будут хранится аватары пользователей. Как их туда засовывать и забирать при надобности?

Наиболее простой способ – хранить в этом поле пути к файлам. А сами файлы (аватары) хранить в специальной директории
Сходный вопрос обсуждался по ссылке.

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=465

   
 
 автор: cheops   (26.10.2004 в 20:39)   письмо автору
 
   для: Sin   (26.10.2004 в 16:16)
 

>Ага все вроде понятно. Только вот как добавлять время в
>puttime. Ведь по умолчанию там будет '0000-00-00 00:00:00'
Для того чтобы добавить текущее время можно воспользоваться встроенной функцией MySQL - NOW(), которая возвращает текущее время.
INSERT INTO TABLE messges VALUES (0, "Сообщение", 4, NOW(), 'show');


http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=573&page=1

   
 
 автор: Sin   (26.10.2004 в 22:08)   письмо автору
 
   для: cheops   (26.10.2004 в 20:39)
 

А у меня опять почемучки возникают, так все хочится знать :о).
INSERT INTO TABLE messges VALUES (0, "Сообщение", 4, NOW(), 'show'); 

А вот show обизательно указывать, ведь оно у нас по умолчанию. Я пытался поэксперементировать, но у меня не чего не получилось. Тогда почему мы указывали show как по умолчанию? Она все равно не ставится пока ее не добавишь в запрос. :(

   
 
 автор: cheops   (27.10.2004 в 00:20)   письмо автору
 
   для: Sin   (26.10.2004 в 22:08)
 

Существует альтернативный синтаксис оператора INSERT, позволяющий задавать имена столбцов и их значения в форме имя_столбца=значение:
INSERT INTO TABLE messges SET message="Сообщение", id_user=4, puttime=NOW();

Не указанные после оператора SET столбцы получают значение по умолчанию.

   
 
 автор: Sin   (28.10.2004 в 22:13)   письмо автору
 
   для: cheops   (27.10.2004 в 00:20)
 

Ребята вы сейчас все лопнете со смеху после моего вопроса. Я не знаю как настроить phpmyadmin.
Мне извесно:
Имя базы
Имя пользователя
Хост на котором расположен сервер
Пароль.
Этих данных вообще достаточно чтобы настроить phpmyadmin.

   
 
 автор: cheops   (28.10.2004 в 22:53)   письмо автору
 
   для: Sin   (28.10.2004 в 22:13)
 

Этих данных более чем достаточно - у нас сейчас подготовлена статья, посвящённая настройке phpMyAdmin, пока она не появилась в разделе статей приведу выдержки из неё здесь.
Так как часто появляются новые версии phpMyAdmin дистрибутив редко можно обнаружить на просторах рунета. Для того, чтобы получить дистрибутив данного Web-интерфейса следует посетить сайт команды разработчиков http://www.phpmyadmin.org/ , где последняя версия phpMyAdmin доступна для свободной загрузки. Инсталляция phpMyAdmin протекает в несколько этапов.
1. Распакуйте архив с дистрибутивом в поддиректорию корневого каталога вашего web-сервера (Пусть это будет phpMyAdmin). Корневой каталог сервера определяется директивой DocumentRoot, описанной в главе 1. Если вы не имеете прямого подступа к корневому каталогу, в случае если сервер расположен на удалённой машине, поместите файлы в директорию на локальной машине, и затем, после шага 3, переместите директорию на Web-сервер, например, воспользовавшись ftp.
2. Откройте файл config.inc.php и измените значение хоста, пользователя базы данных, его пароль и режима идентификации согласно вашему окружению. Здесь, "хост" означает сервер, где расположена СУБД MySQL. Так в случае локальной машины, можно ввести "localhost". Так же необходимо исправить значение для $cfg['PmaAbsoluteUri'] для указания точного сетевого адреса phpMyAdmin: если настройка Web-приложения происходит на локальной машине, и в первом пункте архив был распакован в папку phpMyAdmin, то следует изменить значение этой директивы на "http://localhost/phpMyAdmin".
$cfg['PmaAbsoluteUri'] = 'http://localhost/phpMyAdmin';
$cfg['Servers'][$i]['auth_type']     = 'config';
$cfg['Servers'][$i]['user']          = 'user';
$cfg['Servers'][$i]['password']      = 'password';

3. Желательно защитить директорию в которой установлен phpMyAdmin, например при помощи HTTP-AUTH, если только phpMyAdmin не используется на локальной машине, в сети Интранет или используется HTTP или cookie-идентификация.
4. Теперь можно открыть в браузере главную страницу phpMyAdmin. Если инсталляция производилась на локальной машине (localhost) в подкаталог phpMyAdmin корневого каталога web-сервера, то следует воспользоваться URL: http://localhost/phpMyAdmin/index.php. При этом в браузере должна загрузится главная страница панели управления.

Если гиперссылки на главной страницы панели управления phpMyAdmin не работают, следует ещё раз проверить значение директивы $cfg['PmaAbsoluteUri']. Неправильно указанный сетевой путь является наиболее распространённой ошибкой конфигурирования phpMyAdmin.

   
 
 автор: advin   (18.05.2005 в 02:15)
 
   для: cheops   (28.10.2004 в 22:53)
 

А можно поподробнее про HTTP-AUTH, для phpmyadmin?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования