parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

По порядку.

shurgalin 19.12.2004 18:43 / 19.12.2004 18:47

1. есть пользоваьели - ДА
2. у каждого пользователя 0+ фотографий - ДА
3. у фотографии может быть несколько пользователей - НЕТ
4. а если может, то зачем - НЕ ЗНАЮ

Вопрос №1. Как идентифицировать пользователя?
Ответ. По полю login.

Вопрос №2. Как идентифицировать картинку?
Ответ. Очевидного способа нет. Поэтому лучше всего id.
create table 'user'(
'login' varchar(32) primary key,
'password' varchar(32) null,
'name' varchar(100) null
);

create table 'photo' (
'login' varchar(32) not null,
'photoId' int(11) unsigned primary key auto_increment,
'comment' varchar(250) null,
'previewExt' enum('gif', 'jpg', 'jpeg', 'png') not null,
'photoExt' enum('gif', 'jpg', 'jpeg', 'png') not null,
'width' smallint(5) unsigned not null,
'height' smallint(5) unsigned not null
);
Изображения добавляются парами: превью установленого размера и сама фотография. Сохраняются файлы в определённый каталог с именами preview_{photoId}.{previewExt} и photo_{photoId}.{photoExt}.

Если очень хочется, то можно из таблицы photo убрать все поля начиная с previewExt и добавить:
...
'previewId' int(11) unsigned not null,
'photoId' int(11) unsigned not null
...


create table 'photo_file' (
'id' int(11) primary key auto_increment,
'ext' enum('gif', 'jpg', 'jpeg', 'png') not null,
'width' smallint(5) unsigned not null,
'height' smallint(5) unsigned not null,
'data' mediumblob not null
);
...и хранить изображения прямо в БД.

Красота :)