| Доброй ночи.
Возникла проблема с проектированием базы данных стройматериалов(арматура, бетон, металлопрокат), ни как не могу сообразить, как лучше сделать.
Подскажите, как лучше организовать БД.
В базе надо хранить данные по поставщикам материалов, самих материалов и скидки на цену для каждого материала. Скидка у каждого поставщика своя.
Вроде бы ничего сложного, но есть небольшое "НО", которое не могу до конца понять.
Допустим есть стройматериал "Арматура" с какими-то данными. Например "название", "цена", "скидка", "тех. характеристика", "единица измерения", "марка", "поставщик", "категория". Это основная информация, которая должна быть.
Сделал такую структуру таблицы:
<?php
CREATE TABLE IF NOT EXISTS `mtrl_goods`(
`id_goods` INT(3) NOT NULL AUTO_INCREMENT,
`goods` VARCHAR(50) NULL, # наименование
`price` DECIMAL(5,2) NULL, # цена
`discount` INT(2) NULL, # скидка
`descr` VARCHAR(250) NULL, # тех. характеристика
`unit` CHAR(5) NULL, # единица измерения
`sort` CHAR(10) NULL, # марка
`sh` INT(3) NOT NULL DEFAULT 0, # видимость на сайте
`create` DATETIME DEFAULT '0000-00-00 00:00:00', # дата добавления товара в базу
`id_supplier` INT(3) NULL, # поставщик
`id_category` INT(3) NULL, # категория
PRIMARY KEY(`id_goods`)
)ENGINE=MyISAM DEFAULT CHARSET="utf8";
|
Таблица поставщиков получилась следующая:
<?php
CREATE TABLE IF NOT EXISTS `mtrl_supplier`(
`id_supplier` INT(3) NOT NULL AUTO_INCREMENT,
`supplier` VARCHAR(150) NULL,
`site` VARCHAR(50) NULL,
`email` VARCHAR(50) NULL,
`phone` VARCHAR(100) NULL,
`rating` INT(2) NULL,
`create` DATETIME DEFAULT '0000-00-00 00:00:00',
`sh` INT(3) NOT NULL DEFAULT 0,
PRIMARY KEY(`id_supplier`)
)ENGINE=MyISAM DEFAULT CHARSET='utf8';
|
У одного товара может быть несколько поставщиков и у каждого своя скидка на товар.
Предполагаю, что надо сделать связующую таблицу, куда надо будет заносить id товара, id поставщика и скидку, но я не уверен, что это решение правильное. Потом надо будет организовать поиск товаров в БД по разным критериям.
Как же всё таки правильно организовать БД?
Заранее благодарю. | |