Оптимальная структура
1.
Studentsov (02.12.2009 / 23:14)
Есть такая проблема. Есть таблицы (из скрипта серфинга):
------------------
CREATE TABLE country (
id tinyint(3) unsigned NOT NULL auto_increment,
country varchar(40) NOT NULL,
PRIMARY KEY (id)
) DEFAULT CHARSET = utf8;
------------------
CREATE TABLE operator (
id smallint(4) unsigned NOT NULL auto_increment,
id_country tinyint(3) unsigned NOT NULL,
operator varchar(40) NOT NULL,
PRIMARY KEY (id),
KEY id_country (id_country)
) DEFAULT CHARSET = utf8;
------------------
CREATE TABLE diapason (
id_operator smallint(4) unsigned NOT NULL,
start int(11) unsigned NOT NULL,
finish int(11) unsigned NOT NULL,
UNIQUE KEY start (start),
UNIQUE KEY finish (finish)
) DEFAULT CHARSET = utf8;
------------------
CREATE TABLE urls (
id mediumint(8) unsigned NOT NULL auto_increment,
url varchar(400) NOT NULL,
status tinyint(1) unsigned NOT NULL DEFAULT 1,
PRIMARY KEY (id)
) DEFAULT CHARSET = utf8;
------------------
Мне надо реализовать фильтр по операторам, что бы рекламодатели могли выбрать только определенных операторов. А потом показывать юзеру только те ссылки, где разрешен его оператор. Операторов ~100. Ничего на ум пока не приходит...
2.
coca-coca (02.12.2009 / 23:28)
в таблицу urls добавь поле operator_id, по нем у делай выборку)
3.
Studentsov (02.12.2009 / 23:33)
Вот допустим у меня operator_id равен 12. А рекламодатель решил разрешить id'ы 1, 2, 3, 12, 54. Вот что делать? Как и куда записывать разрешенные id? И определять, есть ли там какой-нибудь id?
4.
coca-coca (02.12.2009 / 23:37)
делать таблицу price_links_operators, со структурой
id - id записи в бд
operator_id - id оператора
url_id - id урла в таблице urls
poster_id - id того, кто добавил линк, ну само собой, что таблицу можешь под себя редактировать)
Дальше делаешь выборку
SELECT * FROM `urls` WHERE `id` = 1 OR `id` = 2 OR `id` = 3 OR `id` = 12 OR `id` = 54
ЗЫ ща занят маленько, в приват кину те полный запрос с выборкой из таблицы price_links, ^ выше на скорую руку запрос накатал
5.
Studentsov (02.12.2009 / 23:45)
Была у меня мысль создать таблицу, в которую записывать данные, поля id_url, id_operator. Но в этой таблице для каждой ссылки будет до 90 записей, слишком жирно это наверное...
6.
coca-coca (02.12.2009 / 23:47)
Не жирно, оптимально как раз таки.
7.
Studentsov (02.12.2009 / 23:48)
Ну посмотрим, может кто-нибудь что-нибудь умней предложит
URL:
https://visavi.net/topics/3496