Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > помогите правильно создать таблицу...


Автор: BrutalizedProgrammer 28.11.2006, 18:21
скажите как правильно описать поле, которое должно быть PRIMARY KEY,
вот код (mysql_qw - не стандартная функция, ... с книги содрал smile , но пашет она отлично):
Код

  if(mysql_qw('DROP TABLE users')) echo('table users dropped;<br>');
  else                             echo('table users not dropped: '.mysql_error().';<br>');
  if(mysql_qw('CREATE TABLE users (
    username TEXT PRIMARY KEY,
    password TEXT,
    hashcode TEXT,
    email TEXT,
    date_registration INT,
    date_last_voting INT
    )')) echo('table users created;<br>');
  else   echo('table users not created: '.mysql_error().';<br>');


вот вывод ошибки:
Код

table users not dropped: Unknown table 'users';
table users not created: BLOB/TEXT column 'username' used in key specification without a key length;


Пожалуйста, напишите правильный вариант.

Автор: Piphon 28.11.2006, 18:40
ХМ.  Вот так работает

Код

CREATE TABLE `users` (
  `username` varchar(30) NOT NULL default '',
  `password` varchar(64) default NULL,
  `hashcode` varchar(10) default NULL,
  `email` varchar(70) default NULL,
  `date_registration` datetime default NULL,
  `date_last_voting` datetime default NULL,
  PRIMARY KEY  (`username`),
  UNIQUE KEY `username` (`username`)
) TYPE=MyISAM


Рекомендации:
  • Ников больше 20-30 нету, а если нет пускай уменьшают. 
  • Про пароль и хэш тоже, для пароля надо либо 32, 64 и т.д символов в зависимости от шифрования, для хэша 10 (точное количество).
  • Мыло ну никак больше 70.
  • Дату и время храни в Мускульном вареанте (либо TIMESTAMP, либо DATE или DATETIME)
  • Ключ объявляется в отдельной строке.

Автор: BrutalizedProgrammer 28.11.2006, 19:48
оО! Мужик, спасибо... 

Автор: BrutalizedProgrammer 28.11.2006, 20:26
Вопрос решен.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)