[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Структура БД, большого магазина
Mihaz
День добрый форумчане. Возникла проблема в организации структуры БД, для магазина. Если у кого есть какие идеи и соображения по этому поводу, пожалуйста отпишитесь. Значит задача такая. Есть магазин. У него много филиалов в разных местах. На каждом из филиалов свой товар. Со своими наборами характеристик (цены на один и тот же товар в разных магазинах могут отличаться). Должен быть один общий ресурс. Юзверь заходя на ресурс, может делать выборку товару, по шаблону, либо просто вбивая в поиск наименование. Шаблон будет по очередности, сначала группа товара ( эл.товараы, затем направление, ТВ , затем модель и т.д. (как на ядндекс маркете). Ему выводитсяь список со всех магазинов. с разными ценами. Магазины разные. торгуют разными товарами , но они одного хощяина и под одним брендом. Следовательно наименований товаров будут тысячи. Далее каждый из магазинов может заходит в свою учетку на сайте, и добавлять (редактировать товар).
Сначала я хотел построить для каждого магазина отдельные талицы с товарами. И поиск не стал бы проблемой, так же как и редактирование. скажем было бы 20-30 таблиц, по 1-й на каждый магазин (точное число не знаю) . Но есть одно но, и это но все усложняет. Надо чтобы ГЛАВНЫЙ администратор, мог добавлять новый магазин. или удалять его...... причем чут ли не одним кликом. И чтобы число магазинов было не фиксированно и не ограничяено... Вот ту и проблема, представляю себе БД с скажем 500 таблицами... И чтобы опросить их все скорость скажем будет не из лучших. Может у кого нить есть другой вариант как не делать по табличке на кажды магазин?




Спустя 3 минуты, 58 секунд (21.07.2010 - 13:33) Ice написал(а):
Эт Вам в другой раздел надобно, а именно - "проекты".

Спустя 6 минут, 58 секунд (21.07.2010 - 13:40) sergeiss написал(а):
Ice - а при чем тут раздел "Проекты"???

Автору темы: а что тебе мешает сделать в некой единой таблице отдельное поле для идентификации магазина (плюс к полям для идентификации товаров)?

Спустя 14 минут, 16 секунд (21.07.2010 - 13:55) Mihaz написал(а):
sergeiss: Нечто подобное в идеях было. Только подразумевалдось несколько табличек. Одна отвечающая за товар, другая закатегорию. Щас постараюсь накидать, покажу. А что имел введу ты ? Можешь расписать подробнее ?

Спустя 1 минута, 12 секунд (21.07.2010 - 13:56) Ice написал(а):
Цитата (sergeiss @ 21.07.2010 - 14:40)
Ice - а при чем тут раздел "Проекты"???

А чё, есть иные предложения?

Спустя 15 минут, 54 секунды (21.07.2010 - 14:12) Basili4 написал(а):
sergeiss
И это только структура. ИМХО ТС уж действительно обратиться в раздел проекты. Не осилит он такую работу.

Спустя 2 минуты, 29 секунд (21.07.2010 - 14:14) Mihaz написал(а):


-- Структура таблицы `goods`
--

CREATE TABLE `goods` (
`id` int(11) NOT NULL auto_increment,
`art` int(11) NOT NULL,
`name` varchar(150) NOT NULL,
`id_type` varchar(500) NOT NULL,
`id_shops` varchar(500) NOT NULL,
`option` longtext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;

--
-- Дамп данных таблицы `goods`
--

INSERT INTO `goods` VALUES (1, 1, 'nokia s25i', '1', '1;2', '1200;красный;04;5000000;1200; Значение N');
INSERT INTO `goods` VALUES (2, 2, 'Ореол', '2', '2', '15000;1200Х1500Х200;20;кожа;Значение N');

-- --------------------------------------------------------

--
-- Структура таблицы `shop`
--

CREATE TABLE `shop` (
`id` int(11) NOT NULL,
`name` varchar(150) NOT NULL,
`tel` varchar(50) NOT NULL,
`adress` varchar(125) NOT NULL,
`other` varchar(125) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

--
-- Дамп данных таблицы `shop`
--

INSERT INTO `shop` VALUES (0, 'Магазин 1', '555-666', 'улица уличная ,5', 'тра та та ');
INSERT INTO `shop` VALUES (0, 'Магазин 2 ', '666-777', 'ул. Московская, 12', 'ля ля ля ');

-- --------------------------------------------------------

--
-- Структура таблицы `type_of_goods`
--

CREATE TABLE `type_of_goods` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(125) NOT NULL,
`option` longtext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;

--
-- Дамп данных таблицы `type_of_goods`
--

INSERT INTO `type_of_goods` VALUES (1, 'Камеры', 'цена;цвет;вес;мегапикс;емкость аккомулятора;сойствоN');
INSERT INTO `type_of_goods` VALUES (2, 'Диван', 'Цена;размер;вес;материал;Свойство N');


Вот так примерно я предпологал сделать. Но тут есть неудобства. Если какой нить "магазин" заодит в учетку для редактирование товаров, то ему для начала надо показать список тех товаров, что уже есть. И поиск будет идти по табличке goods надо будет перебрать все товары, и в каждом перебрать все значения поля is_shop. Не очень то и удобно, а о скорости и говорить не придеться.

Спустя 51 минута, 58 секунд (21.07.2010 - 15:06) SlavaFr написал(а):
id_shop в goods сразу выкидывай и создовай таблицу shop_to_goods, в которой ключ от shop и goods имеет.
googds.option а так же type_of_goods.option можеш тоже в мусорник выкинуть, так как для этих целей специалные таблицы надо делать.

MyIsam можеш использовать, если тебе клиенты не дороги.

в таблице shop зделай из id автоинкремент и primary key , так как id на то и данно, чтоб быть единственным.



Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.