|
|
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
Прошу помощи в проектировании БД (MS SQL). Требуется спроектировать "БД оборудования" для дальнейшего создания спецификации (сохранять в отдельный файл с последующим экспортом в Word). Вся сложность которая меня ставит в тупик это то, что у меня в БД нет, в принципе, (многократно) повторяющихся значений в записях, кроме завода изготовителя. Поэтому пока я представляю БД только двумя таблицами. таблица [Main] поля: [ID] [Name] [Type] [code] [Key_Manufacturer] [ed_izm] [Weight] [Dimension] [Description] [Date] [Note] [Image] таблица [Manufacturer] поля: [Key_Manufacturer] [Name] Еще будет повторяться [ed_izm] (единицы измерения) - кг, тонн, литры, метры, километры и т.д. Но мне кажется проще вбивать руками текст и хранить текстом... хотя не знаю. Ну пусть будет 3 таблицы. В главной таблице [Main] у меня получится не более 1.000.000 записей. В таблице [Manufacturer] не более 50 записей. Стоит ли делать БД из 2-3 таблиц? Или проще все в одной сделать и не париться? Дополнительно могу сказать про особенности записей: Разные заводы могут делать одинаковое оборудование. Почти все значения в таблице [Main] могут повторяться но не более 100 на 1M. Отдельно хочется сказать про запись в файл (думаю xml). Выбранные записи в БД нужно будет формировать в спецификацию (в том же приложении где и будет выводиться БД. Я думаю, что проще это будет сделать по позиции [ID]. И хранить в файле просто этот [ID] + количество заказанного оборудования (отдельное поле). Прошу помочь дельными советами в проектировании БД! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 08:27 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
Ashoorup, всё, что вы тут понаписали, выдаёт в вас зелёного новичка. И потом, раз взялись делать по-хорошему, то вместо ed_izm сделайте уже Measure Unit, а то как-то не стыкуется с Weight, Dimension, Description Основой любой БД являются классификаторы (справочники) Займитесь сначала справочником единиц измерения, изучите этот нелёгкий вопрос, что такое единица измерения, какие системы единиц измерения существуют, и т.д. А если руками будете вбивать текст "кг", "км", "м3", то потом проблем не оберётесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 08:35 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
Ashoorupсложность которая меня ставит в тупик это то, что у меня в БД нет, в принципе, (многократно) повторяющихся значений в записяхда, и забыл добавить - эта фраза лишена смысла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 08:36 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
Нормальный справочник единиц измерений еще и позволяет пересчитывать тонны в килограммы и т.п. Если задачка не высосана из пальца, то его нужно делать добросовестно. Тоже касается и классификации оборудования. Она может быть достаточно сложной, по нескольким критериям, каждый критерий - отдельная иерархия. Свойства оборудования - еав. Качественный, универсальный экспорт в ворд по шаблонам - это полдюжины-дюжина таблиц. Классификация шаблонов, привязка шаблонов к бизнес-сущностям, маппинг полей шаблонов на поля сущностей, сами шаблоны и готовые файлы в виде блоб полей. Все перечисленное выше - штук 30 таблиц навскидку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 08:40 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
AshoorupОтдельно хочется сказать про запись в файл (думаю xml). Выбранные записи в БД нужно будет формировать в спецификацию (в том же приложении где и будет выводиться БД. Я думаю, что проще это будет сделать по позиции [ID]. И хранить в файле просто этот [ID] + количество заказанного оборудования (отдельное поле). Ну а этот бред не имеет никакого отношения к проектированию БД. И вообще, вам проще всего будет нанять разработчика - специалиста по базам данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 08:40 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
П-ЛСвойства оборудования - еав.Зачем вы издеваетесь над новичком? Разве по его посту не понятно, что он не знает, что такое EAV ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 08:43 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
А вдруг хороший, годный новичок - будет грызть гранит науки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 08:47 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
да, но после его вопроса Ashoorup Стоит ли делать БД из 2-3 таблиц? Или [b]проще все в одной сделать и не париться ?[/b] его будет преследовать Святая Инквизиция ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 08:50 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
Я и есть зеленый новичок - не скрываю. Measure Unit - принял! Тогда делать надо 3 таблицы: таблица [Main] поля: [ID] [Name] [Type] [code] [Key_Manufacturer] [Key_Measure_Unit] [Weight] [Dimension] [Description] [Date] [Note] [Image] таблица [Manufacturer] поля: [Key_Manufacturer] [Name] таблица [Measure_Unit] поля: [Key_Measure_Unit] [Measure] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 08:54 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
Вы начинаете с конца. СНАЧАЛА изложите коротко назначение, функциональные требования - что ваша база должна мочь. Отсюда будет видно, насколько глубоко надо прорабатывать те или иные части. Ну и схему бд лучше выкладывать графическую. Бесплатный мс скл экспересс имеет нормальный редактор схем, можно выставить режим отображения таблиц, когда будут видны комментарии к каждому полю. Можно добавлять произвольные текстовки на схему. Фронт-енд на схему можно быстренько натянуть на аксесе. Категорически против одинаковых полей Id Name в разных таблицах. При сшивании в запросе их придется алиасить. Я сразу именую ManufacturerID, ManufacturerName, UnitID, UnitName, ... Это вкусовщина, но так схема легче читается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 09:02 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
Данная работа это мой курсовой проект. Кому нравится и кому будет приятно - можно шутить, глумиться, показывать свое ЧСВ. Я не обидчивый. Моя цель прежде всего научиться делать БД. Не для корочки в ВУЗе. Заказывать у спецов не буду однозначно. Программа будет реально работать на производстве. Спасибо за понимание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 09:05 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
П-ЛСНАЧАЛА изложите коротко назначение, функциональные требования - что ваша база должна мочь. Я думал первого поста будет достаточно... Возможно что-то не учел... Задумка такая: Пользователь ищет по части наименования [Name] нужное оборудование. В таблице должны вывестись варианты (может делают несколько заводов, или есть разные исполнения). Далее пользователь выбирает нужную запись и добавляет ее в свою таблицу (спецификация), где потом только указывает количество. После того как спецификация сформирована - делает экспорт в Word. П-ЛНу и схему бд лучше выкладывать графическую. Еслиб я умел. Но я готов учиться, так-что не подумайте, что я спрыгиваю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 09:19 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
AshoorupПрограмма будет реально работать на производстве.Вы можете в это искренне верить. Кто является заказчиком ? Кто - спонсором ? Результат проекта зависит от этих - ключевых вопросов а не от технических показателей. Может быть внедрено жуткое говнище, в котором будут страдать и мучаться юзеры, а качественное решение, напротив, выброшено за борт. Постарайтесь таки сформулирвать требования к системе. В учебном проекте все равно должен быть этот важный раздел. Какие средства для реализации предполагаете ? На чем будет клиент, сервер ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 09:22 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
AshoorupП-ЛСНАЧАЛА изложите коротко назначение, функциональные требования - что ваша база должна мочь. Я думал первого поста будет достаточно... Возможно что-то не учел... Задумка такая: Пользователь ищет по части наименования [Name] нужное оборудование. В таблице должны вывестись варианты (может делают несколько заводов, или есть разные исполнения). Далее пользователь выбирает нужную запись и добавляет ее в свою таблицу (спецификация), где потом только указывает количество. После того как спецификация сформирована - делает экспорт в Word. П-ЛНу и схему бд лучше выкладывать графическую. Еслиб я умел. Но я готов учиться, так-что не подумайте, что я спрыгиваю :) 1. Это - детский сад, ясельная группа. Даже на учебный проект такой уровень изложения не тянет. 2. Установка и использование бесплатной редакции мс скл сервера вполне доступны новичку. Его графический редактор схем - тоже. От нуля можно смело начинать работать. За пару дней наработаете навыки. Сейчас очень много разных средств рисования схем БД разной степени сложности и мощности, если есть особые предпочтения можете выбирать что-то еще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 09:27 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
Ну понятно что это не ТЗ. Заказчик считайте я. Оплата обычная ЗП:) Не стоит относится к программе как нечто очень важному и ответственному. Сейчас это все руками делается. Но вообще подобную программу когда-то у нас уже написал один наш работник (вроде даже он был программистом) - ушел. Он сделал все в одной таблице. Прога на дельфях писана. Исходников не оставил. Скрин программы прилагаю. Сейчас я после всех "рекомендаций" несколько растерялся и не знаю с какой стороны подступиться. Пока я в Visual Studio уже слепил некое подобие вьвера БД (C#). Там же сделал в SSDT БД и две таблицы. Но они не связаны (не умею пока). Готов все нафик удалить и начать заново. Давайте по порядку. Что сделать первое? Я выполню - покажу результат. Понятное дело, что вот прям все сразу все Ваши рекомендации я не выполню. Хочется последовательности. Спасибо за понимание и терпение! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 09:54 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
Ashoorup, автор[ID] [Имя] [Тип] [код] [Key_Manufacturer] [ed_izm] [Вес] [Размер] [Описание] [Дата] [Заметка] [Image] мне более приемлема структура таблицы(опыт работы на заводе,10-30т единиц) наименование поляналичие справочникаидуникальныйинвентарный номеруникальный, но может отсутствоватьзаводской номервводится при отсутствии инвентарногоцехспручоборудованиеспр с наименование-модель-техническая характеристиказавод изготовительспргод выпускагод месяц поступлениякатегории ремонтной сложностивесдлинаширинавысотапервоначальная стоимостьсинтетический счетспргруппа аналитического учетаспргруппа амортизацииспр......и еще 2 десятка полей у вас же непонятно что авторВ главной таблице [Main] у меня получится не более 1.000.000 записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 10:04 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
авторЧто сделать первое? Сформулировать понятия предметной области. Сформулировать бизнес- и функциональные требования. Описать бизнес-процессы. Общее назначение системы. Что такое оборудование. Что такое спецификация. Как ведется каталог оборудования. Какие с ним нужно выполнять действия (бизнес-функции). Как наполняется спецификация. Что с ней можно/нужно делать. Из приведенных данных видно, что оборудования довольно много. Удобно с ним работать в виде плоского списка ? Нужна классификация/каталогизация ? Наименование, технические характеристики почему склеены вместе ? Что такое код оборудования ? Нужно вести учет оборудования в количественном исчислении ? Может оборудование пакетироваться (одна упаковка в общей таре - 12 шт. единиц) ? Собранные спецификации имеют какой-то жизненный цикл (новая, черновик, готова, обработана, исполнена) ? Надо хранить историю обработки спецификаций ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 10:11 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
П-Л, ТС же сказал, что это курсовая работа. А то что вы перечислили тянет на хорошую дипломную, а по объёму работы и на кандидатскую диссертацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 12:25 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
Wilhelm HoltoffТС же сказал, что это курсовая работа. Курсовая работа призвана показать чему ТС научился в течении этого самого курса. Пусть делает одну таблицу, получит заслуженную двойку и больше никогда не подходит к программированию. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 12:39 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
Хоть примерно понял, что Вы от меня хотите добиться:) В любом случае вся эта текстовка/описание пойдет для курсовой в пояснительную записку. Назначение системы (я бы назвал это попроще - программа для работы со спецификацией) Система предназначена для работников проектных организаций и осуществляет работу с БД оборудования устройств автоматики, телемеханики и связи на железнодорожном транспорте. по сути система должна решать две задачи: 1. выдача справочных данных оборудования для проектировщика (например габаритные размеры оборудования), 2. составление спецификации (т.е. подготовка/выдача проектной документации) Требования к системе Система должна обеспечивать: -поиск необходимого оборудования в БД по всем полям -вывод результатов поиска в виде таблицы со всеми характеристиками оборудования -многоуровневый доступ: "Администратор", "Редактор БД", "Пользователь" -редактирование БД средствами системы -создание таблицы спецификации -добавление выбранного оборудования в спецификацию -сохранение и последующее открытие сформированной спецификации -многодокументный режим с возможностью копирования записей из одной спецификации в другую -экспорт спецификации в Word Оборудование в системе должно быть представлено для пользователя следующими полями: -Наименование оборудования - текстовое поле до 200 знаков -Тип, марка, обозначение - текстовое поле до 50 знаков -Код оборудования - - текстовое поле до 50 знаков -Завод изготовитель - - список (отдельная таблица) не более 50 записей -Единицы измерения - - список (отдельная таблица) не более 20 записей -Масса (кг) - - float поле до 10 знаков -Габаритные размеры - текстовое поле до 30 знаков -Снято с производства - bool checkbox птичка установлена - снято с производства. Как отображать под вопросом еще. -Изображение Будет отображаться не в таблице (на форме в углу) Спецификация должна соответствовать ГОСТ (потом поищу какой - там все поля строго именованы и расположены) В таблице "Спецификация" поле "Количество" должно редактироваться пользователем. Редактирование каталога оборудования (БД) осуществляет пользователь "Редактор БД". Система должна обеспечивать контроль добавляемого оборудования на полный повтор записи. Теперь ответы на вопросы которые не описал: Скрин программы которую я привел, уже давно не пользуют. Там и база устарела, и ошибок много, и неудобно пользоваться, и поменять что-то сложно. Функционал не поменять т.к. нет исходников. авторИз приведенных данных видно, что оборудования довольно много. Удобно с ним работать в виде плоского списка ? - Да удобно. Пользователь например ищет оборудование "светофор" по полю "Наименование"- ему должно вывестись в той же таблице все записи содержащие данное слово. Модификаций может быть около 100. Затем он фильтрует то что найдено задавая критерии поиска в других полях. Например Завод-изготовитель. Одно и то же оборудование может делать несколько заводов. (очень врядли будут искать оборудование по другим полям). Может быть в очень редких случаях пользователь будет искать оборудование по коду изделия. авторНаименование, технические характеристики почему склеены вместе ? - Так и должно быть. В таком виде спецификация передается заказчику (типа стандарт). Разбивать нет смысла. авторНужна классификация/каталогизация ? - Думаю нет. Я хорошо думал над этим :) не получится, да и не нужно. авторЧто такое код оборудования ? - просто текстовое поле. Оно и из цифр и из букв и из точек с прочерками и возможно даже с национальными символами. Пользователь может по нему искать оборудование. Может повторяться. авторНужно вести учет оборудования в количественном исчислении ? Может оборудование пакетироваться (одна упаковка в общей таре - 12 шт. единиц) ? Нет. В БД не нужно. Количество указывается уже в спецификации. авторСобранные спецификации имеют какой-то жизненный цикл (новая, черновик, готова, обработана, исполнена) ? Надо хранить историю обработки спецификаций ? Ну как бы нет... Черновик - это то что сохранили файл. Готово это то что экспортировали в Word. Специальных статусов нет. Вернее они есть но это задача системы документооборота - это она определяет статус файла/объекта . А вот насчет истории... тут мне нужен совет. Дело в том, что запись в БД может меняться. Например завод сменил наименование оборудования для заказа, или например ошибка "Редактора БД". Но пользователь уже добавил эту запись в спецификацию. И хорошо бы ему просигнализировать, если он откроет спецификацию, что такая-то запись изменилась в БД (причину указывать и хранить не нужно). Т.е. как бы надо хранить дату внесения изменения в БД и соответственно копировать ее в спецификацию, но не отображать там (только в файле). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 13:04 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovКурсовая работа призвана показать чему ТС научился в течении этого самого курса. Пусть делает одну таблицу, получит заслуженную двойку и больше никогда не подходит к программированию. +100500 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 13:08 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
Ashoorup, тогда можно предположить, что ваша mainэто огромный прайсспецификация заказ с полями кому/дата/наименование/составитель .....спецификацияСоставвыбранные из прайса позиции, причем если из прайса удалили, то добавлять в комментарий сообщение об этом ,периодически выдавать отчет строк, которых нет в прайс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 13:15 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
Давайте не будем уходить от темы все таки и переходить на морально-этические стороны вопроса. Я мог бы взять любую другую прогу в сети и выдать ее за свою, получить пять и быть двоечником. Но я честно написал что хочу научиться ! Прошу только немного в этом помочь , и мне как я вижу уже помогают, что конечно же приятно! Причем отвечают довольно быстро. Я благодарен форумчанам за это! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 13:23 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
ПЕНСИОНЕРКАтогда можно предположить, что ваша mainэто огромный прайсспецификация заказ с полями кому/дата/наименование/составитель .....спецификацияСоставвыбранные из прайса позиции, причем если из прайса удалили, то добавлять в комментарий сообщение об этом ,периодически выдавать отчет строк, которых нет в прайс main - ну пускай будет прайс, только цен там нет и не планируется (уж очень плавающая позиция - некому отслеживать) спецификация - нет такого чтобы отдельно заказ шел одному, отдельно другому. Все проще. По какому-то объекту строительства перечисляется все оборудование которое нужно заказать и оформляется в виде документа "Спецификация". Посчитать цену это задача отдела смет... ну как бы это совсем другая песня, хоть и можно подумать над дальнейшем расширением функционала. спецификацияСостав - я думаю это должна быть одна таблица Спецификация. А вот насчет удаленной позиции я и написал - тут надо отслеживать дату редактирования. Причем именно дату - пользователю может и не нада дата редактирования записи, а вот Редактору БД может пригодиться. Например одна и таже запись может редактироваться несколько раз. И нужно знать когда ее редактировали а не то что ее вообще редактировали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 14:20 |
|
||
|
Может лучше сделать все одной таблицей?
|
|||
|---|---|---|---|
|
#18+
AshoorupПЕНСИОНЕРКАтогда можно предположить, что ваша mainэто огромный прайсспецификация заказ с полями кому/дата/наименование/составитель .....спецификацияСоставвыбранные из прайса позиции, причем если из прайса удалили, то добавлять в комментарий сообщение об этом ,периодически выдавать отчет строк, которых нет в прайс main - ну пускай будет прайс, только цен там нет и не планируется (уж очень плавающая позиция - некому отслеживать) спецификация - нет такого чтобы отдельно заказ шел одному, отдельно другому. Все проще. По какому-то объекту строительства перечисляется все оборудование которое нужно заказать и оформляется в виде документа "Спецификация". Посчитать цену это задача отдела смет... ну как бы это совсем другая песня, хоть и можно подумать над дальнейшем расширением функционала. спецификацияСостав - я думаю это должна быть одна таблица Спецификация. А вот насчет удаленной позиции я и написал - тут надо отслеживать дату редактирования. Причем именно дату - пользователю может и не нада дата редактирования записи, а вот Редактору БД может пригодиться. Например одна и таже запись может редактироваться несколько раз. И нужно знать когда ее редактировали а не то что ее вообще редактировали. Катастрофическая ошибка. Спецификации и их состав - ДВЕ РАЗНЫЕ таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 14:59 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38949203&tid=1540532]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 277ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...