powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / нужен совет по проектированию небольшой Б.Д.
25 сообщений из 53, страница 1 из 3
нужен совет по проектированию небольшой Б.Д.
    #36419594
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
привет комьюнити!
У меня следующее Т.З.
1.Нужно создать базу где будет инвентаризация катриджей.
2.Необходимо узнать сколько каждый отдел потребляет в месяц катриджей.
==
Я создал 1 таблицу с семью столбцами.
авторCREATE TABLE `sklad` (
`Id` int(11) NOT NULL auto_increment,
`curent_date` date default NULL,
`otdel` varchar(20) default '',
`name_family` varchar(20) default '',
`printer` varchar(20) default '',
`catridge` varchar(20) default '',
`Kolichestvo` int(50) default NULL,
`description` varchar(20) default '' COMMENT 'This description',
PRIMARY KEY (`Id`)
) ENGINE=MyISAM AUTO_INCREMENT=34 DEFAULT CHARSET=utf8;
Сейчас думаю может лучше создать 2 таблицы.
Нужен совет профессионалов.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419613
Viktor_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да.. Здесь нужен настоящий профессионал :)
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419639
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну ладно Вам над новичком прикалываться :)
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419784
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лучше 3, наверняка

а по делу, вам нужны (наверное) таблицы: отделов, физлиц, принтеров, картриджей, движений этих картриджей, инвентаризаций и т.д.. Все начинается с построения модели, а не таблиц.

С уважением, Naf
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419815
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да вот именно,мне нужно понять как правильно сделать дизайн баззы.
Сколько как Вы считаете нужно сделать таблиц что-бы можно sql запросом вычислить сколько катриджей потребляет каждый отдел в месяц? мне это нужно для построения графиков через OpenFlashChart .
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419831
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы немного неправильно мыслите, вы отвлекитесь от средств работы, а постройте модель: таблицы, связи между ними. А на ваш вопрос я отвечу 10 таблиц, почему? а хз
С уважением, Naf
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419871
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тоесть однозначного ответа пока нету?
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419890
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorueтоесть однозначного ответа пока нету? Я намекаю чтобы вы построили модель - научитесь будет хорошо для вас
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419906
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не спорю.
Можете дать ссылку где почитать ?
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419918
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorueМожете дать ссылку где почитать ?sql.ru
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419922
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
давайте обойдёмся без флейма.
Модераторы удалите пожалуйста посты не по теме!
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419939
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorueСколько как Вы считаете нужно сделать таблиц что-бы можно sql запросом вычислить сколько катриджей потребляет каждый отдел в месяц?
lagorueтоесть однозначного ответа пока нету?Конечно, нету.

Такой запрос можно сделать из любого количества таблиц.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419972
Не важно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оставь одну - это вполне соотвествует твоей задаче.

Поборникам теории баз и декомпозации в нормальные формы на 10 таблиц я напомню про такую штуку как "денормализация" )
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419984
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не важноОставь одну - это вполне соотвествует твоей задаче.

Можете подсказать как составить sql запрос(если конечно средствами одного sql это возможно) что-бы вывести сколько каждый отдел за месяц в среднем потребляет катриджей.
Запрос c выборкой по дате с начала месяца и по конец я уже составил,а вот как из столбца catridge вычислить среднее значение не знаю.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420124
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lagorue,

Select
otdel,
avg(kolichestvo) kolichestvo
from table1
where dat between dt1 and dt2
group by otdel
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420132
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lagorue,
Или
Код: plaintext
1.
2.
3.
4.
5.
6.
Select
otdel,
SUM(kolichestvo) kolichestvo
from table1
where dat between dt1 and dt2
group by otdel

я не понял из вашего поста, что значит "в среднем"
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420156
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще, для вашей задачи достаточно одной таблицы, одна строка в которой будет отражать одно движение, а именно, что в такой-то отдел поступило или выбыло некоторое количество картриджей. Начальное их количество по отделам вы заведёте записями о поступлении.
При такой организации данных вы можете всегда посмотреть
1) обороты (приход и расход) за период
2) остатки на определённую дату.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420261
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пробую
Код: plaintext
Select otdel,avg(kolichestvo),kolichestvo from sklad WHERE DATE between ('2010-01-01') and ('2010-01-20') group by otdel;
Ругается на авторERROR 1054 (42S22): Unknown column 'DATE' in 'where clause'
Можете подсказать в чём я не правильно SQL запрос делаю?
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420274
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorueпробую
Код: plaintext
Select otdel,avg(kolichestvo),kolichestvo from sklad WHERE DATE between ('2010-01-01') and ('2010-01-20') group by otdel;
Ругается на авторERROR 1054 (42S22): Unknown column 'DATE' in 'where clause'
Можете подсказать в чём я не правильно SQL запрос делаю?это пример для некоторой СУБД, нужно адаптировать под вашу. Но в данной ветки обсуждаются вопросы по проектированию, то есть без привязки к конкретному продукту
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420276
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
Select * from sklad WHERE kolichestvo between DATE('2010-01-01') and DATE('2010-01-20') ;
Такой запрос возврашает 0.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420334
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
дальше ответ на свой вопрос в этой ветке я не смогу получить,сочтёте за флуд?
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420360
A1ek5andr0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorue,

WAREHOUSEIDPERS_IDCART_ID

PERSONIDFIODEPT_ID

DEPARTMENTIDNAME

PRINTERIDNAMECART_ID

CARTRIGEIDNAMEACTIVE

Как-то так. и связать форейн кеями.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420361
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorue , тебе правильно написали - ты начал не с того.

Как вариант, расскажи как у вас эти картриджи "живут" - после этого можно показать примеры как построить таблички.

Наверняка будет нечно как писал Naf
Nafвам нужны (наверное) таблицы: отделов, физлиц, принтеров, картриджей, движений этих картриджей, инвентаризаций и т.д.. Все начинается с построения модели, а не таблиц.
А всякая там "денормализация" - зло!
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420365
A1ek5andr0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorue,

Для дальнейшего уточнения структуры нужен жизненный цикл картриджей)
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420409
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lagorueпробую
Код: plaintext
Select otdel,avg(kolichestvo),kolichestvo from sklad WHERE DATE between ('2010-01-01') and ('2010-01-20') group by otdel;
Ругается на авторERROR 1054 (42S22): Unknown column 'DATE' in 'where clause'
Можете подсказать в чём я не правильно SQL запрос делаю?


Не поверите, я названия полей (otdel, kolichestvo) придумал не глядя на приведённую топикстартером структуру данных

Для вашего примера запрос такой:
Код: plaintext
1.
Select otdel, SUM(kolichestvo) kolichestvo from sklad WHERE curent_date between ('2010-01-01') and ('2010-01-20') group by otdel;
Запятая после агрегирующей функции не нужна, это алис для поля
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 1 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / нужен совет по проектированию небольшой Б.Д.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]