| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [MS Access] БД компьютерного магазина |
| Автор: Treod 30.4.2008, 18:19 |
Хотелось бы услышать советов по поводу проектирования БД компьютерного магазина. Ниже приведена схема данных. Посоветуйте пожалуйста что добавить, либо изменить. ![]() |
| Автор: kapbepucm 30.4.2008, 19:28 | ||
Я бы из таблицы "Заказы" убрал бы "Код товара"; создал ещё одну таблицу "Стороки заказов"
Добавлено через 8 минут и 4 секунды Потому как, если, конечно, я не ошибаюсь, на данный момент получается, что в определённом заказе будет только один определённый товар. Также не определено количество товара для конкретного заказа. |
| Автор: kapbepucm 30.4.2008, 19:44 |
| Ещё предложение. Вместо трёх таблиц "Клиенты", "Менеджеры", "Поставщик" сделать одну. Всё вышеупомянутое носит рекомендательный характер и не принуждает ни к каким действиям |
| Автор: bopoha 30.4.2008, 19:46 | ||
Аргументировали бы хоть. Поля одинаковые? Так роли очень разные. В целях оптимизации выборки, меньшего хаоса и улучшения сопровождаемости, лучше три таблицы. Т.к. с течением времени БД меняется. |
| Автор: kapbepucm 30.4.2008, 19:46 | ||
В принципе я описал...
Добавлено через 1 минуту и 7 секунд Разве ж очень? Добавлено через 6 минут и 31 секунду Ну, по крайней мере, сам разрабатывал и до сих пор поддерживаю складскую БД, где партнёры и работники склада в одной таблице. Клиенты не жалуются Добавлено через 12 минут и 8 секунд bopoha,если вас не затруднит, приведите хотя-бы маленький примерчик, где моя структура не совершенна. |
| Автор: bopoha 30.4.2008, 21:09 |
| kapbepucm, не беспокойтесь совершенных структур БД не бывает. В моей практике было решение (именно мое) объединить разные роли в одну таблицу. Не удобство возникло в следующем: - Таблица раздулась. - Не понятно было какая запись к чему относится. А это понадобится в этом конкретном случае. - Упала скорость запросов связанных с этой таблицей, при увеличении числа записей. В объединенной таблице записей на много больше. - Возникли сложности с внесением изменений в структуру БД. Вот, наверное, это все. |
| Автор: Treod 30.4.2008, 21:14 |
| Есть небольшой вопрос. Товар будет поставляться с одной стоимостью, а сбываться с надбавкой. Мне придется в таблицу товар включить поля стоимость закупки, стоимость продажи? Или можно сделать по другому? |
| Автор: Treod 1.5.2008, 15:00 |
Моя схема данных приняла такой вид:![]() Но появилась небольшая проблема. В свойствах поля стоимость продажи в данных прописываю формулу: =([Стоимость закупки])*1,3. В форме все работает нормально. Идет надбавка 30%, но в поле стоимость продажи данные не вносятся. Почему? |
| Автор: kapbepucm 1.5.2008, 16:32 |
| Treod, а у вас всем товарам при продаже будет одинаковая наценка 30%? Добавлено через 5 минут и 34 секунды Если да, то поле "стоимость продажи" не совсем нужно... |
| Автор: kapbepucm 1.5.2008, 16:49 |
| Если нет, то можно сделать какую нибудь структуру, которая бы по умолчанию добавляла 30%, но по желанию менеджера могла-бы и меняться. Для менеджера это могло бы выглядеть как прайс-лист. Ну а вообще, если к каждому клиенту имеется индивидуальный подход, неплохо бы добавить в таблицу "Строки заказа" поле "цена", которая по умолчанию бралась бы из прайс-листа, но по желанию менеджера могла-бы меняться. |
| Автор: Treod 1.5.2008, 17:04 | ||||
Да, всем товарам будет наценка 30%.
А как я могу обойтись без этого поля? |
| Автор: kapbepucm 1.5.2008, 17:43 |
| Имею ввиду то, что хранить в таблице туже самую цену, только умноженную на 1,3 необязательно. Например, нехитрый запрос бы и сам посчитал нужную цену продажи. |
| Автор: Treod 1.5.2008, 18:11 | ||
Можно конкретный пример запроса? |
| Автор: kapbepucm 1.5.2008, 20:21 | ||
Ну, например:
|
| Автор: Treod 2.5.2008, 15:30 | ||||
Как сделать с помощью этого запроса, чтобы в поле "Стоимость продажи" автоматически добавлялась сумма? SQl запрос в моем случае примет вид:
Или же придется вручную обращаться к запросу и копировать стоимость продажи? |
| Автор: kapbepucm 2.5.2008, 19:42 |
| Для чего в таблице "Товары" поле "Количество"? В таблице "товары"? |
| Автор: Treod 2.5.2008, 20:11 | ||||
Количество товара.
Да) |
| Автор: kapbepucm 3.5.2008, 09:45 |
| Количество товара в определённом заказе или остаток товара на складе магазина? Зачем? Добавлено через 1 минуту и 50 секунд |
| Автор: Treod 3.5.2008, 09:47 | ||
Ниже приведена форма поставки. Мне необходимо, чтобы при занесении в поле "Стоимость закупки" данных, автоматически данные переносились в поле "Стоимость продажи" с наценкой.![]() Добавлено через 1 минуту и 40 секунд
Количество поставляемого товара. Добавлено через 3 минуты и 25 секунд Может у меня не хватает таблицы? Таблица Товары у меня одна. Она используется и при поставке и при заказе товара. Может посоветуете какую еще добавить таблицу? |
| Автор: kapbepucm 3.5.2008, 11:14 | ||
| Наконец до меня дошло... Я бы объединил таблицы: 1)"Клиенты" и "Поставщик" в "Партнёры" 2)"Заказы" и "Поставка" в "Документы" 3)"Строки заказа" стали бы "Строки документа". Ну и количество если это заказ умножать на (-1) Ну а если оставлять так, то: 1)Нужна ещё таблица наподобие "Строки заказа" между "Товары" и "Поставка"
|
| Автор: Treod 3.5.2008, 12:46 |
| А может же быть, что в таблице "Товары" не будет конкретно поставляемого товара. Или сначала его необходимо внести в таблицу "Товары"? Большое спасибо за помощь, но все же имеются еще пару вопросов: 1) В таблице "Товары" будут содержаться товары, имеющиеся в мвгазине? . 2) Как я могу убрать из таблицы "Товары" поле "Стоимость продажи"? Попробую объяснить на примере. Допустим в магазин поставляется товар от фирмы ООО "ХХХ". Поставляется процессор стоимостью 5600 руб. Клиенту мы его продаем уже за 6000 руб. Где будет храниться стоимость товара, когда мы осуществляем продажу? Добавлено через 1 минуту и 24 секунды Может необходима таблица "Склад магазина"? |
| Автор: kapbepucm 3.5.2008, 15:16 | ||||
Добавлено через 4 минуты и 42 секунды Мне непонятно следуещее:
5600*1.3=7280 |
| Автор: Treod 3.5.2008, 15:21 |
Значит все же следует создать таблицу "Склад товаров"? Или можно обойтись и без нее? |
| Автор: kapbepucm 3.5.2008, 15:23 |
| Думаю, что нет. Остаток может посчитать запрос. |
| Автор: Treod 3.5.2008, 15:27 | ||
Если не сложно, можно привести листинг запроса? Буду благодарен Думаю можно добавить поле "Наличие товара". Добавлено через 2 минуты и 6 секунд И еще вопрос: Что же делать со стоимостью продажи? Или просто оставить поле "Цена товара"? |
| Автор: kapbepucm 3.5.2008, 15:36 | ||||
Думаю не стоит. Запрос всё наидет что есть, а чего нет на складе.
|
| Автор: Treod 3.5.2008, 15:40 | ||
Я просто привел пример, не стал уж вычислять 30%. По сути всем товарам будет одинаковая надценка. Добавлено через 1 минуту и 49 секунд А как будет выглядеть запрос, который подсчитывает остаток? |
| Автор: kapbepucm 3.5.2008, 17:59 | ||||||||||
Гм... С тои схемой, которая у вас сейчас на данный момент- не знаю. Может всё же произведёте одну из двух манипуляций? 1)
2)
Добавлено через 3 минуты и 8 секунд В этих двух вариантах- знаю |
| Автор: Treod 3.5.2008, 18:15 | ||||
Провел 2-ую манипуляцию.![]() Добавлено @ 18:26
С запросом то мне все понятно. Вводим стоимость товара, выводится стоимость продажи. Вот листинг моего запроса:
Но как сделать, чтобы стоимоть продажи сразу вносилась в таблицу "Товары" поле "стоимость продвжи"? |
| Автор: kapbepucm 3.5.2008, 18:34 |
| Нет. Вводим код товара (конечно необязательно код, для конечного пользователя можно сделать раскрывающийся список, и код, который нужен, сам введётся) вводим количество, а всё остальное самостоятельно где надо посчитается. |
| Автор: Treod 3.5.2008, 18:36 |
| Да я оговорился. Вводим код товара. Но, повторю еще раз: мне нужно, чтобы стоимоть продажи сразу вносилась в таблицу "Товары" поле "стоимость продажи" Добавлено через 3 минуты и 2 секунды ![]() Добавлено через 3 минуты и 56 секунд Так приблизительно должна выглядеть таблица "Товары" |
| Автор: kapbepucm 3.5.2008, 19:09 | ||||||
И всёже, не понимаю чем вам не нравиться регистрировать новый товар в этом запросе:
|
| Автор: kapbepucm 3.5.2008, 19:28 | ||||||||||
| Остаток товара сделал в 5 этапов (для наглядности): 1)Запрос Ostatok1
2)Запрос Ostatok2
3)Запрос Ostatok3
4)Запрос Ostatok4
5)Запрос Ostatok5
|
| Автор: Treod 3.5.2008, 19:57 |
Спасибо большое за помощь. Для цены продыжи оставлю просто запрос. С остатком пока разбираюсь. Еще раз огромное спасибо. |
| Автор: bopoha 3.5.2008, 23:44 |
| Treod, чем больше цифр будет захарткодано в коде, тем труднее будет сопровождать программу. После разработки попробуй найти разбросанную 1.3 в коде. Надбавка поменяется. Как пить дать. Если не хочется выносить в настройки, то можно сделать фукнцию для вычисления. И использовать ее везде. При измнении понадобится поменять только в одном месте. |
| Автор: Treod 7.5.2008, 18:30 | ||
Пытаюсь создать запрос, выдает ошибку.
Произвел некоторые изменения: 1) "Цену продажи" занес в "Строки заказа" 2)"Цену закупки" в "Строки поставки" ![]() |
| Автор: bopoha 8.5.2008, 00:03 |
Укажите новое имя без таблицы |
| Автор: Akina 8.5.2008, 08:35 |
| Всё, надоело. |
| Автор: Akina 8.5.2008, 08:35 |
| Для домашних заданий, курсовых, существует "Центр Помощи". Тема перенесена! |
| Автор: Treod 8.5.2008, 15:42 | ||
Спасибо |