Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

MYSQL таблица скидок для каждого клиента на свою группу товаров своя скидка кратко

Практика



Нужно создать таблицу MYSQL скидок для каждого клиента на свою группу товаров своя скидка
уже существует таблица с клиентами и табл с группами товаров

CREATE TABLE IF NOT EXISTS `goup_product` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`group_name` varchar(255) NOT NULL,
`block` int(11) NOT NULL DEFAULT '0',
`vid` int(11) NOT NULL DEFAULT '0',
`autor_name` varchar(60) NOT NULL DEFAULT ' ',
`autor_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) TYPE = InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1
CREATE TABLE IF NOT EXISTS `client` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL DEFAULT ' ',
`Tel` varchar(255) NOT NULL DEFAULT ' ',
`fax` varchar(255) NOT NULL DEFAULT ' ', 
`Manager` varchar(255) NOT NULL DEFAULT ' ',  
`Email` varchar(100) NOT NULL DEFAULT ' ',  
`autor_id` int(11) NOT NULL DEFAULT '0',
`region` varchar(255) NOT NULL DEFAULT ' ',
`autor_name` varchar(255) NOT NULL DEFAULT ' ',
`Status` int(11) NOT NULL DEFAULT '0',
`Block` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) TYPE = InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

создаю связанную таблицу


CREATE TABLE IF NOT EXISTS `percentages` (
    id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
    client_id INT(11) NOT NULL,
    group_id INT(11) NOT NULL,
    PRIMARY KEY (id),
    INDEX client_id USING BTREE (client_id),
    INDEX group_id USING BTREE (group_id),
    CONSTRAINT orders_ibfk_1 FOREIGN KEY (client_id)
    REFERENCES db.client (id) ON UPDATE CASCADE,
    CONSTRAINT orders_ibfk_2 FOREIGN KEY (group_id)
    REFERENCES db.goup_product (id) ON DELETE CASCADE
)
ENGINE = INNODB
AUTO_INCREMENT = 1
AVG_ROW_LENGTH = 4096
CHARACTER SET cp1251
COLLATE cp1251_general_ci;


Я с базами данных знаком на очень среднем уровне. Нужно подумать. Нужно создать таблицу скидок для каждого клиента на свою группу товаров своя скидка.
Уже существует таблица с клиентами и табл с группами товаров, создаю связанную таблицу `percentages`, но как ее заполнить ?
Нужно на каждого клиента по ID все группы товаров с ID в таблицу всунуть.
Возможно ли это в табл `percentages` с такой структурой сделать?

Ответ - Смотри... есть клиенты, есть товары. У каждого клиента своя скидка на отдельный товар?

Вопрос - Да на отдельную группу товаров и у всех разные скидки и у клиентов и на группы товаров и количество групп произвольное.
Как правильно таблицу со скидками сделать?

Ответ - нужно проектировать это не делается просто так..... Дай мне структуру таблиц по столбцам как они записаны, то есть название столбцов в таблицах
я пока отойду ненадолго, скоро вернусь. ты пока выпиши.

CONSTRAINT orders_ibfk_1 FOREIGN KEY (client_id)
REFERENCES db.client (id) ON UPDATE CASCADE,
CONSTRAINT orders_ibfk_2 FOREIGN KEY (group_id)
REFERENCES db.goup_product (id) ON DELETE CASCADE

это связывает уже существующие записи при удалении или изменении но как их создать??? в новой третьей таблице со скидками

ща дам схематично структуру таблиц- а полностью я их вверху написал


CREATE TABLE IF NOT EXISTS `client` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL DEFAULT ' ',................

CREATE TABLE IF NOT EXISTS `goup_product` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`group_name` varchar(255) NOT NULL,....................

а нужно

CREATE TABLE IF NOT EXISTS `percentages` (

id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
client_id INT(11) NOT NULL,
group_id INT(11) NOT NULL,
PRIMARY KEY (id),
INDEX client_id USING BTREE (client_id),
INDEX group_id USING BTREE (group_id),
CONSTRAINT orders_ibfk_1 FOREIGN KEY (client_id) REFERENCES db.client (id) ON UPDATE CASCADE,
CONSTRAINT orders_ibfk_2 FOREIGN KEY (group_id) REFERENCES db.goup_product (id) ON DELETE CASCADE
)
ENGINE = INNODB AUTO_INCREMENT = 6 AVG_ROW_LENGTH = 4096
CHARACTER SET cp1251 COLLATE cp1251_general_ci;.............




Вопрос
правильно ли структура третьей табл со скидками спроектирована? и как ее заполнить с данными клиентов и групп? Как ты думаешь?

Ответ
во-первых Primary key не нужен. ты и так используешь составной PRIMARY KEY - это 3 айдишника клиент-группа-товар - чем не уникальный блин параметр?
то есть таблица со скидками будет без PRIMARY KEY?
объясни зачем там PRIMARY KEY?


Хорошо, пусть будет так, а как же заполнить ее - если две таблицы с клиентами и группами товаров уже есть? В цикле двойном - стремновато, всякими сложными условиями - не хочу.

Ответ Тебе полюбому нужно будет связать товар и клиента и выставить скидку... отношение многие ко многим - много товаров, много клиентов, нужно разбивать и делать (в идеале) отношение 1 к 1 - 1 товар 1 клиент 1 скидка ....
Полюбому нужно отталкиваться от того что у 1 клиента - скидки (РАЗНЫЕ) на каждый товар (или на группу товаров)

Вопрос Как это на практике сделать? или 1 клиент - 1 группа товаров - 1 скидка?

Ответ Какие у тебя столбцы (со значимыми названиями а не с твоими названиями? какие данные они содержат?)
по таблицам, а то я конечно читаю твой код но мне он мало о чем говорит. атрибуты мне не интересны. это стадия проектирования, а не реализации
заполнение таблиц в соответствии с типами полей. Короче, создавай вложенные циклы для создания таблицы скидок для уже существующих клиентов и групп товаров или придумай запрос.

создано: 2011-07-29
обновлено: 2023-08-08
132501



Рейтиг 10 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

MySql (Maria DB)

Термины: MySql (Maria DB)