|
|
|
Организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Господа! Кто уже занимался разработкой БД, подскажите пожалуйста вот такой организационный вопрос: есть у меня таблица "Сметы", напр.: | ID_сметы | ......Название....... | ну и т.д. | .......001.........Ремонт крыши......... есть справочник "Работы" напр. | Код работы | Название | Ед. измерения | вообще Смета состоит из следующих столбцов: | № п/п | ID_работы | Кол-во | .....01............10..........100 .....02............11..........150 .....03............12..........200 в одной смете порядка 50-100 записей, и в итоге получится такая большая таблица, напр.: | ID_сметы | № п/п | ID_работы | Кол-во | .......001..........01...........10.........100 .......001..........02...........11.........150 .......001..........03...........12.........200 ........................................ .......002..........01...........13.........100 .......002..........02...........14.........150 .......002..........03...........15.........200 Работать с этим собираюсь через ВинФормс, вопрос собственно вот в чем: вообще оптимальный ли это способ? если конечная цель подгрузить в приложение смету, например внести изменения и сохранить. Если их будет 100, 500, 1000 будет большая таблица и чтобы вставить в форму одну смету приложение будет перебирать всю таблицу по "ID_сметы"? Стоит ли это оптимизировать, или это нормальный способ? Спасибо за помощь)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 09:40 |
|
||
|
Организация структуры БД
|
|||
|---|---|---|---|
|
#18+
LuberСтоит ли это оптимизировать, или это нормальный способ? Нормальный способ, выборка данных по одной смете займёт 1 милисекунду независимо от объёма таблицы. Вообще такие вопросы лучьше задавать в "проектировании", тут есть такой специальный форум. Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 10:02 |
|
||
|
Организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Виноват, не знал) Тогда понятно спасибо, а вопрос еще: есть ли какой-то оптимальный размер для такой таблицы? например 100 000, 1 000 000 строк? И прошу прощения за тупой вопрос, но почему "1 миллисекунду независимо от объёма таблицы"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 11:01 |
|
||
|
Организация структуры БД
|
|||
|---|---|---|---|
|
#18+
LuberТогда понятно спасибо, а вопрос еще: есть ли какой-то оптимальный размер для такой таблицы? например 100 000, 1 000 000 строк?Оптимально - чтобы там были все данные, которые нужны :-) LuberИ прошу прощения за тупой вопрос, но почему "1 миллисекунду независимо от объёма таблицы"?Потому что время поиска по индексу (если вы проиндексируете ID_сметы) слабо зависит от размера - для этого они и придуманы. Посчитайте в BOL про индексы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 11:52 |
|
||
|
Организация структуры БД
|
|||
|---|---|---|---|
|
#18+
LuberГоспода! Кто уже занимался разработкой БД, подскажите пожалуйста вот такой организационный вопрос... ...Стоит ли это оптимизировать, или это нормальный способ? Спасибо за помощь))Можно спросить по самой вашей структуре? 1. В одной смете каждая работа встречается не более одного раза, или же может быть больше? Цена работы фиксирована (если цены там вообще будут)? 2. К работам не привязаны никакие материалы? 3. "№ п/п", полагаете, надо хранить в БД? Это будет простой нумератор типа 1, 2, ... N, или более сложные (составные) конструкции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 16:48 |
|
||
|
Организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Luber, Вы неправы, т.к. то что вы указали Код: plaintext 1. 2. 3. Код: plaintext 1. 2. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 17:59 |
|
||
|
Организация структуры БД
|
|||
|---|---|---|---|
|
#18+
boottyМожно спросить по самой вашей структуре? 1. В одной смете каждая работа встречается не более одного раза, или же может быть больше? Цена работы фиксирована (если цены там вообще будут)? 2. К работам не привязаны никакие материалы? 3. "№ п/п", полагаете, надо хранить в БД? Это будет простой нумератор типа 1, 2, ... N, или более сложные (составные) конструкции? будет всё гораздо сложнее, я не хотел просто вам тут голову забивать)) в одной смете будет несколько разделов работа может встречаться несколько раз в смете № п/п однозначно строго нумеруется к работам привязаны и материалы и скорее всего трудозатраты, для которых в свою очередь (как я понял) необходимо сделать таблички (помимо работ и материалов): |Работа_ID|Расценка_ID| тут при заполнении сметы можно будет выбрать для данной работы |Расценка_ID|Название расценки|Дата составления| тут просто будет табличка с расценками |Расценка_ID|Материал_ID|Кол-во на ед. изм| тут уже состав расценок |Материал_ID|Цена|Дата| ну дата я думаю чтобы отслеживать и прогнозировать цены легче было вот как я представляю, может я в чем то не прав? Злой Бобр , Вы видимо не поняли: | ID_сметы | № п/п | ID_работы | Кол-во | это не запрос, а таблица с содержанием смет, определяющая в какой смете какая работа идет под каким порядковым номером (и какая расценка ей соответствует) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 19:53 |
|
||
|
Организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Luberбудет всё гораздо сложнее, я не хотел просто вам тут голову забивать)) ... вот как я представляю, может я в чем то не прав?В этом правы, но...будет всё гораздо сложнее... Тогда я попробую вам голову забить. Из того, что вспоминается по прошлому опыту: 1. Одна смета может иметь несколько дополнительных (соотв. нужно отслеживать их консолидировано) 2. Иногда есть смысл сделать отдельно сводную таблицу материалов по смете. Для обработки и учёта кратности этих материалов. В этой таблице будут все материалы из сметы суммарными количествами + еще одно количество для каждого материала — количество кратное. Пример: по одной работе 0,5 литра краски, по другой 1,2 литров краски, в третьей еще литр. Она продается банками по 3 литра. Если не дай Босх смета сильно растянута во времени, и закупается не всё сразу. Если купят 3 раза по банке (итого 9 литров), то заказчик вполне откажется платить за обе (он и так часто платит по смете за материалы по факту, а не по первоначальной смете). 3. Для работ неплохо бы заложить минимум 2 цены: внешнюю и внутреннюю. Первая — что заплатит клиент, вторая — что получит работник, т.е. "себестоимость". Для материалов, если есть желание немного зарабатывать на объемах или липовых чеках — тоже. 4. Цены на материалы лучше отслеживать не по сметам, а по закупкам (наверняка это отдельные документы в вашей БД) или по отчетам для клиента (тоже 2 цены, клиенту показываем одну). 5. Для одной и той же типовой работы может понадобиться несколько разных типовых "наборов" материалов. Да, кстати, материалы можно заменять аналогами... И еще: при изменении объема работы материал иногда надо пересчитывать согласно объему работы, а иногда нет: полезный признак... 6. Полезные возможности: копирование раздела сметы (со всеми входящими работами и материалами), копирование работы (аналогично со всеми входящими материалами) 7. У сметы часто бывает "подвал", в котором закладываются расходы сверх того, что перечислено в теле: транспортные услуги, инструмент, погрузка-разгрузка, вывоз мусора и т.п. И, наконец, "непредвиденные работы и затраты" . Сумма статьи "подвала" может быть фиксированной или же считаться как % от суммы работ и материалов (только работ, только материалов, работ + материалов, работ + материалов + предыдущих статей "подвала") По мелочам: - тип сметы (например, производство, строительство, монтаж и т.п. — если такое есть, и нужны разные правила, печатные формы и т.п.); - статус сметы (новая, оценена, на утверждении, подписана, архив... сколько сами у себя насчитаете, у нас было более 10); - если в общем случае раздел сметы = место проведения работ, то тоже можно отдельным справочником, а потом снимать аналитику и в этом разрезе; - разные печатные формы в зависимости от того, как клиент платит: всё по-белому, n % по белому, всё по-чёрному, НДС надо/не надо/надо на n %); - накопительная ведомость!!! по нарядам о выполнении... сюда же КС-2, КС-3, КС-11... это если всё-всё-всё ведете в БД; - ТЕР, ФЕР, прочие страшные слова — если очень надо... мы делали, но коряво, для галочки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 12:34 |
|
||
|
Организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Ох, спасибо за такое подробное описание! Не знаю даже, что делать, радоваться или наоборот))) Ну эти все ОПЦИИ, я так понимаю, появились в ходе практики. Я думаю не в каждой сметной программе такое есть (по крайней мере, сам работал в ГрандСмете, там кроме как разделов, сводной таблицы материалов, настраиваемых "подвала", НР и СП, ничего "эдакого" и нет. ФЕР и ТЕР, я думаю, не пригодится, а вот КС-ки будут однозначно вестись, тут думаю ничего сложного нет, кроме человеко-часов на написание форм))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 22:04 |
|
||
|
Организация структуры БД
|
|||
|---|---|---|---|
|
#18+
LuberНу эти все ОПЦИИ, я так понимаю, появились в ходе практики. Я думаю не в каждой сметной программе такое есть (по крайней мере, сам работал в ГрандСмете, там кроме как разделов, сводной таблицы материалов, настраиваемых "подвала", НР и СП, ничего "эдакого" и нет. ФЕР и ТЕР, я думаю, не пригодится, а вот КС-ки будут однозначно вестись, тут думаю ничего сложного нет, кроме человеко-часов на написание форм)))Мы смотрели Смета.ру, она вроде сметчиков устраивала, но нам надо было увязать договоры, сметы, заявки на материалы, закупки и фактическое выполнение смет (строительных и производственных), и чтоб вся картина для начальства получалась парой кликов, поэтому писали такой кусок сами... Ну и почти все "хотелки" сметчиков пришлось делать, чтобы они ушли от своего любимого MS Excel. А вам — удачи в разработке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2010, 16:26 |
|
||
|
Организация структуры БД
|
|||
|---|---|---|---|
|
#18+
bootty А вам — удачи в разработке. спасибо)) а еще вопрос - Вы говорите "мы" делали, вот "мы" это сколько примерно человек? и много ли времени у вас это заняло? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 10:07 |
|
||
|
Организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Luberеще вопрос - Вы говорите "мы" делали, вот "мы" это сколько примерно человек? и много ли времени у вас это заняло?Ну, у нас не было выделено всё это в отдельный проект, всё добавлялось постепенно, по мере необходимости. А так: два человека (аналитик-разработчик + разработчик), всё на Access. Было 2 клиентских части ("офисная" и "прорабская"), функционал в них почти не пересекался, кроме большинства справочников, каждый из нас отвечал за свою часть. Сейчас думаю, что месяца за 2-3 чистого времени сделали бы всё вышеперечисленное мной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 11:15 |
|
||
|
Организация структуры БД
|
|||
|---|---|---|---|
|
#18+
А я на C# в WinForms и MS SQL) один и месяца за 2 хочу...) Ох, пожелание про удачу думаю пригодится :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 14:39 |
|
||
|
Организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Само кодирование не более трети времени занять должно от общего, думаю. Если есть понимание того, что должно получиться, как это должно работать и что нужно оставить для возможности расширения на потом, то управитесь. Только давайте пользователям макеты для тестирования, чтобы потом меньше переделывать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 15:49 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36876175&tid=1542504]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
166ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 464ms |

| 0 / 0 |
