![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Treod |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 21.11.2007 Репутация: 1 Всего: 2 |
Хотелось бы услышать советов по поводу проектирования БД компьютерного магазина. Ниже приведена схема данных. Посоветуйте пожалуйста что добавить, либо изменить. |
|||
|
||||
| kapbepucm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 993 Регистрация: 14.6.2007 Где: Латвия Репутация: 6 Всего: 12 |
Я бы из таблицы "Заказы" убрал бы "Код товара"; создал ещё одну таблицу "Стороки заказов"
Добавлено через 8 минут и 4 секунды Потому как, если, конечно, я не ошибаюсь, на данный момент получается, что в определённом заказе будет только один определённый товар. Также не определено количество товара для конкретного заказа. -------------------- (С) kapbepucm |
|||
|
||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: нет Всего: 21 |
Я бы из Товаров выделил бы Наименование и Характеристики в справочник. Одинаковых товаров может пройти уйма.
И вместо русских символов использовал бы латиницу. Вместо Код писал бы как и вторичные ключи - Код товара. Никаких пробелов в именах. Вдруг будет два пробела - большая проблемма с поиском ошибки. По поводу латиницы: b_[имя_таблицы] (b - база, часто изменяемые данные. Для справочников будет s) K_[имя_таблицы] - счетчик T_[постфикс] - текст N_[постфикс] - число F_[постфикс] - логический И так далее. Очень удобно. Если не известен постфик, то берется имя таблицы. В результате в запросах никогда не перепутаете, что это за поле. Абстрактных полей типа, дата тоже нужно избегать. D_ZAKAZ - будет гораздо понятней при сравнении с D_POSTAVKA. В целях экономии места и некоторого облегчения заполнения, можно Адрес разбить на состовляющие. Справочник улиц позволит не писать наименование полностью. В общем рюшечек можно много еще привести. Задавайте более конкретные вопросы. Нам ведь не извесны требования к БД. kapbepucm, зачем это?
Это сообщение отредактировал(а) bopoha - 30.4.2008, 19:44 |
|||
|
||||
| kapbepucm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 993 Регистрация: 14.6.2007 Где: Латвия Репутация: 6 Всего: 12 |
Ещё предложение. Вместо трёх таблиц "Клиенты", "Менеджеры", "Поставщик" сделать одну.
Всё вышеупомянутое носит рекомендательный характер и не принуждает ни к каким действиям -------------------- (С) kapbepucm |
|||
|
||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: нет Всего: 21 |
Аргументировали бы хоть. Поля одинаковые? Так роли очень разные. В целях оптимизации выборки, меньшего хаоса и улучшения сопровождаемости, лучше три таблицы. Т.к. с течением времени БД меняется. Это сообщение отредактировал(а) bopoha - 30.4.2008, 19:47 |
|||
|
||||
| kapbepucm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 993 Регистрация: 14.6.2007 Где: Латвия Репутация: 6 Всего: 12 |
В принципе я описал...
Добавлено через 1 минуту и 7 секунд Разве ж очень? Добавлено через 6 минут и 31 секунду Ну, по крайней мере, сам разрабатывал и до сих пор поддерживаю складскую БД, где партнёры и работники склада в одной таблице. Клиенты не жалуются Добавлено через 12 минут и 8 секунд bopoha,если вас не затруднит, приведите хотя-бы маленький примерчик, где моя структура не совершенна. -------------------- (С) kapbepucm |
|||
|
||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: нет Всего: 21 |
kapbepucm, не беспокойтесь совершенных структур БД не бывает.
В моей практике было решение (именно мое) объединить разные роли в одну таблицу. Не удобство возникло в следующем: - Таблица раздулась. - Не понятно было какая запись к чему относится. А это понадобится в этом конкретном случае. - Упала скорость запросов связанных с этой таблицей, при увеличении числа записей. В объединенной таблице записей на много больше. - Возникли сложности с внесением изменений в структуру БД. Вот, наверное, это все. |
|||
|
||||
| Treod |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 21.11.2007 Репутация: 1 Всего: 2 |
Есть небольшой вопрос. Товар будет поставляться с одной стоимостью, а сбываться с надбавкой. Мне придется в таблицу товар включить поля стоимость закупки, стоимость продажи? Или можно сделать по другому?
|
|||
|
||||
| Treod |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 21.11.2007 Репутация: 1 Всего: 2 |
Моя схема данных приняла такой вид:
![]() Но появилась небольшая проблема. В свойствах поля стоимость продажи в данных прописываю формулу: =([Стоимость закупки])*1,3. В форме все работает нормально. Идет надбавка 30%, но в поле стоимость продажи данные не вносятся. Почему? Это сообщение отредактировал(а) Treod - 1.5.2008, 15:01 |
|||
|
||||
| kapbepucm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 993 Регистрация: 14.6.2007 Где: Латвия Репутация: 6 Всего: 12 |
Treod, а у вас всем товарам при продаже будет одинаковая наценка 30%?
Добавлено через 5 минут и 34 секунды Если да, то поле "стоимость продажи" не совсем нужно... -------------------- (С) kapbepucm |
|||
|
||||
| kapbepucm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 993 Регистрация: 14.6.2007 Где: Латвия Репутация: 6 Всего: 12 |
Если нет, то можно сделать какую нибудь структуру, которая бы по умолчанию добавляла 30%, но по желанию менеджера могла-бы и меняться. Для менеджера это могло бы выглядеть как прайс-лист. Ну а вообще, если к каждому клиенту имеется индивидуальный подход, неплохо бы добавить в таблицу "Строки заказа" поле "цена", которая по умолчанию бралась бы из прайс-листа, но по желанию менеджера могла-бы меняться.
-------------------- (С) kapbepucm |
|||
|
||||
| Treod |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 21.11.2007 Репутация: 1 Всего: 2 |
Да, всем товарам будет наценка 30%.
А как я могу обойтись без этого поля? |
||||
|
|||||
| kapbepucm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 993 Регистрация: 14.6.2007 Где: Латвия Репутация: 6 Всего: 12 |
Имею ввиду то, что хранить в таблице туже самую цену, только умноженную на 1,3 необязательно. Например, нехитрый запрос бы и сам посчитал нужную цену продажи.
-------------------- (С) kapbepucm |
|||
|
||||
| Treod |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 21.11.2007 Репутация: 1 Всего: 2 |
Можно конкретный пример запроса? Это сообщение отредактировал(а) Treod - 1.5.2008, 18:16 |
|||
|
||||
| kapbepucm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 993 Регистрация: 14.6.2007 Где: Латвия Репутация: 6 Всего: 12 |
Ну, например:
Это сообщение отредактировал(а) kapbepucm - 1.5.2008, 20:25 -------------------- (С) kapbepucm |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |