Хранение ссылок на скачивание

Статус
В этой теме нельзя размещать новые ответы.

serjinio

Гуру форума
Регистрация
10 Май 2007
Сообщения
439
Реакции
51
собственно есть сущность типа фильм, программа,клип,песня и тп..
как организовать правильное хранение ссылок на скачивание к каждой сущности ..ну типа
фильм..Почтальон всегда звонит дважды
Код:
RapidShare.com
[url]http://rapidshare.com/files/69150151/Postman.part01.rar[/url]
...................................
[url]http://rapidshare.com/files/69150157/Postman.part04.rar[/url]

Depositfiles.com
[url]http://depositfiles.com/files/2341757[/url]
....................................
[url]http://depositfiles.com/files/2341753[/url]

Letitbit.net
[url]http://letitbit.net/download/3a1976525915/Postman.part09.rar.html[/url]
.......................................
[url]http://letitbit.net/download/769665220261/Postman.part15.rar.html[/url]

и т.д и т.п..
 
create table names (id int,name char(50));
create table rapids (id int, idx int,link char(50), Foreign Key (idx) references names(id));
create table deposit (id int, idx int,link char(50), Foreign Key (idx) references names(id));
create table letit (id int, idx int,link char(50), Foreign Key (idx) references names(id));

insert into names ( 1, "Pochtalion");
inser into rapids (1,1,"http://");
...
 
INSERT INTO `rapids` VALUES ( 1, 1, 'http://rapidshare.com/files/69150151/Postman.part01.rar' )
........................
INSERT INTO `rapids` VALUES ( 4, 1, 'http://rapidshare.com/files/69150157/Postman.part04.rar' )


т.е правильно ли я понял, что для каждого сервиса создаем отдельную таблицу,организовываем связь один ко многим с таблицей names id int -->idx int (таблиц сервисов)...

ставим полям idx int (таблиц сервисов) INDEX - чтобы ускорить выборку.... и JOINами делаем выборку ...
какие еще могут быть нюансы...
 
Можно выкинуть из rapids,deposit ... столбец id. Ссылки все равно уникальны, столбец ничего не определяет и не соответвует 2-ой формы нормализации.
Нюнсы: при добавлении нового файлообменника надо изменять код поиска ссылок.
 
Можно выкинуть из rapids,deposit ... столбец id. Ссылки все равно уникальны, столбец ничего не определяет и не соответвует 2-ой формы нормализации.
Нюнсы: при добавлении нового файлообменника надо изменять код поиска ссылок.

Первичный идентификатор ID служит не только для уникальности, но и для организации связи с другими таблицами, связывать же "уникальную" ссылку с такой же в другой таблице - безумство
 
Таблица dld:
id - ключ, уникальное
name - содержательное название (название фильма, альбома и т.п.)
descr - подробное описание сущности
id_t - ссылка на tp.id (тип сущности)
id_h - ссылка на h.id (id файлообменника из таблицы h)
ref - собственно ссылка (например "http://rapidshare.com/files/69150151/Postman.part01.rar")

Таблица h названий файлообменников (справочник:(
id - ключ, уникальное
name - название файлообменника

Таблица tp типов сущностей (справочник:(
id - ключ, уникальное
name - название типа сущности ('фильм', 'музыка', и т.п)

По известному id файлообменника таблицы h (например, в h: 1 - rapidhare.com) одним несвязанным с h запросом легко вытащить из dld все ссылки данного файлообменника (с id_h=1).
 
create table names (id int,name char(50));
create table rapids (id int, idx int,link char(50), Foreign Key (idx) references names(id));
create table deposit (id int, idx int,link char(50), Foreign Key (idx) references names(id));
create table letit (id int, idx int,link char(50), Foreign Key (idx) references names(id));

insert into names ( 1, "Pochtalion");
inser into rapids (1,1,"http://");
...

тож вариант... но неоправданно сложный. его желательно чуток подправить.

нам будет достаточно трех таблиц:
create table names (nid int,name char(50)); //фильмы, их характеристики и т.д.
create table service (sid int,sname char(50)); //названия сервисов: рапидшара и т.д.
create table links (id int, nid int, sid int,link varchar(200) );
 
проще разбить на категории и ссылки каждой категории хранить в отдельной БД

Поясните, пожалуйста чем конкретно это "проще" по сравнению с предложенными решениями? И хочется увидеть описание структуры таблиц.
 
Сделать я то сделал.. только больно геморно добавлять ссылки в админке..реализовал так ..из выпадающего списка выбираем сервис хранения ..затем десять полей ,где в каждое поле вводим одну ссылку (архив №1 ) во второе (архив №2 ) и тд ...что-то долго ..может плюнуть и сделать только одно поле где блоком хранить ссылки на фильм для каждого сервиса?
 
Сделать я то сделал.. только больно геморно добавлять ссылки в админке..реализовал так ..из выпадающего списка выбираем сервис хранения ..затем десять полей ,где в каждое поле вводим одну ссылку (архив №1 ) во второе (архив №2 ) и тд ...что-то долго ..может плюнуть и сделать только одно поле где блоком хранить ссылки на фильм для каждого сервиса?

ИМХО, интерфейс может быть мало связан с реализацией хранения информации в таблицах базы. Потому что там критерии другие - прежде всего скорость выполнения выборки нужных данных. А интерфейс можно сделать не привязанным к структуре таблиц - чтоб было удобно пользоваться. Результат ввода данных из интерфейса уже раскидывать по конкретным таблицам.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху