Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 29

Производственная БД

18.12.2019, 12:16. Показов 2601. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется таблица содрежащая полный список всех изделий.
Все издели бывают например 3х типов со своими наборами свойств. В главной таблице есть поле определяющее тип изделия.
1. Как из одной общей таблицы сделать 3 связанных таблицы со совими полями для каждого типа изделий.
Пробовал запросом создать таблицу но она получается не связанная.
В VBA не лез (и не очень хотелось бы), но чусвую придется окунуться... или может есть стандартные иснтрумент access ?
2. Как добавить счетчик которые увеличивается при совпадении нескольких полей. Т.е. есть марка и тип изеделия и нужен счетчик серийного номера для этого изделия.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.12.2019, 12:16
Ответы с готовыми решениями:

Производственная матрица
Здравствуйте, уважаемые форумчане. Вопрос возник по созданию структуры базы данных в MS SQL Server 2012 производственной матрицы. ...

микроэк: производственная функция
Технология производства описана производственной функцией Q = 10\sqrt{K*L}, при этом w=1, r=4. 1) Какое кол-во работников следует нанять...

Проект с нуля. Производственная база
Добрый день!:pardon: Предистория Переехал в другой город и, с недавних пор, я работаю it-специалистом, в одном из подразделений...

36
 Аватар для VinniPuh
9131 / 6142 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
18.12.2019, 12:31
Цитата Сообщение от Trouyan Посмотреть сообщение
...Как из одной общей таблицы сделать 3 связанных таблицы...
Как то примерно вот так.
Миниатюры
Производственная БД   Производственная БД  
0
Мы один, давай на "ты"
3849 / 1393 / 345
Регистрация: 16.06.2016
Сообщений: 3,288
18.12.2019, 12:32
Цитата Сообщение от Trouyan Посмотреть сообщение
из одной общей таблицы сделать 3 связанных таблицы со совими полями для каждого типа изделий.
Плохая идея связь "один-к-одному"...
0
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 29
18.12.2019, 12:44  [ТС]
Немного не то.
Вижу таблицу как-то так:
Миниатюры
Производственная БД  
0
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 29
18.12.2019, 12:49  [ТС]
Цитата Сообщение от Панург Посмотреть сообщение
Плохая идея связь "один-к-одному"...
Да слышал что один к одному не очень хорошо. Но у меня у разных изделий разные поля его описывающие ... например у одного изделя цвет надо описать, а у другого массу, а у третьего вкус, а у четвртого материал. И все эти поля вписывать в одну общую таблицу не правильно, кажется, будет.

И может подход у меня не правильный. Сейчас Я иду от ощей таблицы к частному, может правильней от частного т.е. от таблиц описывающих каждый тип изделия идти к общей. Но они должны быть связанными и в общей таблице надо иметь ID (счетчик) изделий.
0
 Аватар для VinniPuh
9131 / 6142 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
18.12.2019, 12:51
Цитата Сообщение от Trouyan Посмотреть сообщение
...Вижу таблицу как-то так:...
Ну если так видите, то тогда да.
Теперь не на бумаге, а в реале, в созданной БД попробуйте так сделать и что то ввести из данных.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
18.12.2019, 12:53
Цитата Сообщение от Trouyan Посмотреть сообщение
Все издели бывают например 3х типов со своими наборами свойств.
Посмотрите EAV модель.
0
 Аватар для VinniPuh
9131 / 6142 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
18.12.2019, 13:22
Цитата Сообщение от Trouyan Посмотреть сообщение
...И может подход у меня не правильный...
Из того что понял, то более правильный подход может быть таким.
Типа у каждого Изделия. свои - Виды Характеристик Свойства по вашему) и Значения.
Миниатюры
Производственная БД  
0
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 29
18.12.2019, 13:59  [ТС]
Очень оригинальный (для меня) взгляд на задачу !!! Очень круто! И похоже так и надо делать, но как быть если поле "значение" может быть текстом (например коментарии), числом (его масса) или файлом (вложение) или текстом из возможных значений другой таблицы (например материал) ?
0
 Аватар для VinniPuh
9131 / 6142 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
18.12.2019, 14:17
Если это по мою душу, то -
Значение может быть только значением, а не каким то вложением.
Например
Зеленый
Круглый
50
Дерево
...
Что то типа так:
Выбираете Изделие и в подчиненной форме указываете все его характеристики.
Затем перейдя на новую запись в основной - Вносите основные данные другого изделия и соответственно характеристики этого
и.т.д. и.т.п.
В Акцессе делается именно так.
Миниатюры
Производственная БД  
0
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 29
18.12.2019, 14:29  [ТС]
Хорошо, материал и чертёж (вложения) можно кодом (целым числом) задать. Но возможно ли тогда, в зависимости от типа характеристики, делать подстановку либо материала, либо покрытия, либо цвета из других таблиц? Если acess это не умеет, может мне надо использовать другой софт и другие инструменты?
0
 Аватар для VinniPuh
9131 / 6142 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
18.12.2019, 14:39
Цитата Сообщение от Trouyan Посмотреть сообщение
в зависимости от типа характеристики, делать подстановку либо материала, либо покрытия, либо цвета из других таблиц?
Можно, но только не из - МНОЖЕСТВА ТАБЛИЦ, а из ОДНОЙ ТАБЛИЦЫ.
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
18.12.2019, 15:52
Цитата Сообщение от Trouyan Посмотреть сообщение
Вижу таблицу как-то так:
id
модель
sn
ковидасвойства
значениесвойства
0
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 29
18.12.2019, 18:18  [ТС]
Цитата Сообщение от VinniPuh Посмотреть сообщение
Можно, но только не из - МНОЖЕСТВА ТАБЛИЦ, а из ОДНОЙ ТАБЛИЦЫ.
Перекопал форум, нашел еще несколько примеров. И везде такая же проблема.
Если характеристика определяется числом - то всё легко. Подставил число и подставил ед. измерения.
А если это число - это код материала или код изготовителя или код поставщика, то голые цифры буду не читабельны, и заполнять такую БД сложно. А смешивать в одной таблице мух и котлеты (материалы, изготовители, поставщики, и т.д.) совсем ужасно будет... как делают в данных ситуациях ? Или пишут на VBA свою БД ? Или другой софт используют ? Просто в тупике уже =(
0
 Аватар для VinniPuh
9131 / 6142 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
18.12.2019, 19:26
Я тут бессилен.
Очень запущенный случай.
Может кто то другой возьмётся за лечение пациента.
0
 Аватар для Andrey-MSK
3346 / 2233 / 387
Регистрация: 14.08.2018
Сообщений: 7,537
Записей в блоге: 4
18.12.2019, 20:01
Trouyan, Просто покажу, для примера, что можно сделать из всяких разных значений
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
SELECT        dbo.tblGenPlan.KKS, dbo.tblGenPlan.GPName, SUM(ISNULL(dbo.tblDrawSpec.Kolvo, 0) * ISNULL(dbo.tblDrawSpec.VesEd, 0) / 1000) AS DrawWeight, SUM(ISNULL(dbo.tblDrawSpec.Kolvo, 0) * ISNULL(dbo.tblDrawSpec.VesEd, 0) 
                         / 1000 * ISNULL(dbo.tblPPData.TrMont, 0) * ISNULL(dbo.tblPPData.TrKoeff, 0)) + SUM(ISNULL(dbo.tblDrawSpec.KolvoIzg, 0) * ISNULL(dbo.tblDrawSpec.VesEd, 0) / 1000 * ISNULL(dbo.tblPPData.TrIzg, 0)) AS TrudAll, 
                         SUM(ISNULL(dbo.прОстатки_01.[Ост. монт.], 0) * ISNULL(dbo.tblDrawSpec.VesEd, 0) / 1000) AS VesOst, SUM(ISNULL(dbo.прОстатки_01.[Ост. монт.], 0) * ISNULL(dbo.tblDrawSpec.VesEd, 0) 
                         / 1000 * ISNULL(dbo.tblPPData.TrMont, 0) * ISNULL(dbo.tblPPData.TrKoeff, 0)) + SUM(ISNULL(dbo.прОстатки_01.[Ост. изг.], 0) * ISNULL(dbo.tblDrawSpec.VesEd, 0) / 1000 * ISNULL(dbo.tblPPData.TrIzg, 0)) AS TrudOst
FROM            dbo.tblGenPlan INNER JOIN
                         dbo.tblDraw ON dbo.tblGenPlan.ID_GenPlan = dbo.tblDraw.ID_GenPlan INNER JOIN
                         dbo.tblDrawSys ON dbo.tblDraw.ID_Draw = dbo.tblDrawSys.ID_Draw INNER JOIN
                         dbo.tblDrawSpec ON dbo.tblDrawSys.ID_DrawSys = dbo.tblDrawSpec.ID_DrawSys LEFT OUTER JOIN
                         dbo.прОстатки_01 ON dbo.tblDrawSpec.ID_DrawSpec = dbo.прОстатки_01.ID_DrawSpec LEFT OUTER JOIN
                         dbo.tblPPData ON dbo.tblDrawSpec.ID_DrawSpec = dbo.tblPPData.ID_DrawSpec
GROUP BY dbo.tblGenPlan.KKS, dbo.tblGenPlan.GPName, dbo.tblDraw.Stage, dbo.tblDraw.StageTEP
HAVING        (dbo.tblDraw.Stage = N'Основной этап') AND (dbo.tblGenPlan.KKS <> N'ZZZ') AND (dbo.tblDraw.StageTEP <> 0)
Миниатюры
Производственная БД   Производственная БД  
0
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 29
18.12.2019, 20:59  [ТС]
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Trouyan, Просто покажу, для примера, что можно сделать из всяких разных значений
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT        dbo.tblGenPlan.KKS, dbo.tblGenPlan.GPName,
 SUM(ISNULL(dbo.tblDrawSpec.Kolvo, 0) * ISNULL(dbo.tblDrawSpec.VesEd, 0) / 1000) AS DrawWeight,
 SUM(ISNULL(dbo.tblDrawSpec.Kolvo, 0) * ISNULL(dbo.tblDrawSpec.VesEd, 0) 
  / 1000 * ISNULL(dbo.tblPPData.TrMont, 0) * ISNULL(dbo.tblPPData.TrKoeff, 0)) 
+ SUM(ISNULL(dbo.tblDrawSpec.KolvoIzg, 0) * ISNULL(dbo.tblDrawSpec.VesEd, 0) / 1000 * ISNULL(dbo.tblPPData.TrIzg, 0)) AS TrudAll, 
  SUM(ISNULL(dbo.прОстатки_01.[Ост. монт.], 0) * ISNULL(dbo.tblDrawSpec.VesEd, 0) / 1000) AS VesOst,
 SUM(ISNULL(dbo.прОстатки_01.[Ост. монт.], 0) * ISNULL(dbo.tblDrawSpec.VesEd, 0) 
                         / 1000 * ISNULL(dbo.tblPPData.TrMont, 0) * ISNULL(dbo.tblPPData.TrKoeff, 0)) 
+ SUM(ISNULL(dbo.прОстатки_01.[Ост. изг.], 0) * ISNULL(dbo.tblDrawSpec.VesEd, 0) / 1000 * ISNULL(dbo.tblPPData.TrIzg, 0)) AS TrudOst
FROM            dbo.tblGenPlan
 INNER JOIN   dbo.tblDraw ON dbo.tblGenPlan.ID_GenPlan = dbo.tblDraw.ID_GenPlan
 INNER JOIN   dbo.tblDrawSys ON dbo.tblDraw.ID_Draw = dbo.tblDrawSys.ID_Draw
 INNER JOIN   dbo.tblDrawSpec ON dbo.tblDrawSys.ID_DrawSys = dbo.tblDrawSpec.ID_DrawSys
 LEFT OUTER JOIN  dbo.прОстатки_01 ON dbo.tblDrawSpec.ID_DrawSpec = dbo.прОстатки_01.ID_DrawSpec
 LEFT OUTER JOIN  dbo.tblPPData ON dbo.tblDrawSpec.ID_DrawSpec = dbo.tblPPData.ID_DrawSpec
GROUP BY dbo.tblGenPlan.KKS, dbo.tblGenPlan.GPName, dbo.tblDraw.Stage, dbo.tblDraw.StageTEP
HAVING        (dbo.tblDraw.Stage = N'Основной этап') AND (dbo.tblGenPlan.KKS <> N'ZZZ')
 AND (dbo.tblDraw.StageTEP <> 0)
Вот первый рисунок. Там таблица чертежей (tblDrawing).
- Существуют же рабочие чертежи - там важно какой материал, какая масса, класс точности и т.д. .
- А существуют сборочные чертежи - в которых параметры это список и количество деталей, которые включает в себя сборочный чертеж.

Разные чертежи обладают разным набором параметров. А хочется иметь все чертежи в одной таблице со сквозной нумерацией. А в зависимости от типа чертежа нужен свой набор параметров. Решение было представлено выше. Но, а если параметры разных типов данных.

Появилась идея смешать в одну таблицу все возможные параметры, но в несколько столбцов например так:

ID Тип параметра Значение
1 Материал Сталь
2 Материал Пластик
3 Поставщик ООО "рога и копыта"
4 Поставщик ИП иванов
5 Поставщик ИП Петров

Для меня это выглядит дико, но пока ничего другого в голову не приходит.

И уже из этой таблицы подставлять "значение" в поле "значение свойства изделия". А как быть если "значение свойства изделия" - это целочисленная величина например масса. И введя 2 мы получим "Пластик" (из таблицы выше)

Есть какие-нибудь условные операторы в access ? т.е. если поле "свойства" это "материал" , то в значении возможны только материалы и т.п.
Раньше с БД не работал, и мышление у меня классического программиста, а тут смотрю немного по-другому надо.
0
 Аватар для VinniPuh
9131 / 6142 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
18.12.2019, 21:43
Trouyan, скорее всего вы не правильно задаёте вопросы, соответственно вас не понимают или понимают но не так.
Вы все сваливание в одну кучу, а в Аксе, принято все разбивать на сущности.
Например вам нужно зафиксировать, кто создал чертеж здания и какие материалы для этого используются.
Создаётся таблица Сотрудник
В ней поля характеризующие этого сотрудника
  • Фамилия
  • Имя
  • Отчество
  • ДатаРождения
так как он сотрудник, то создаётся таблица - Должности
Которую связывают с полем в таблице Сотрудники
Так как он работает в каком то конструкторском бюро, то создаётся таблица, Подразделения
Так как нужно как то связываться с конструктором, то создаётся таблица ТелефоныСотрудника.
Существуют чертежи с номером и с чем там нужно и какими то атрибутами, чертежа, то создаётся таблица Чертежи
Чтобы связать чертежником и четырех, создаётся связующая таблица с полями КодСотрудника и КодЧертежа
Материал может поставлять один поставщик, а может другой и по разной цене.
Создаются таблица
  • Материалы
  • Поставщики
  • Связующая таблица КаталогПоставщика
И так по каждой сущности, необходимой в вашем проекте.
Все связывается логическими связями.
Если вы не начнёте делать реально, а только мысленно, то так ни когда и не поймёте логику построения реляционных БД.
Как только начнёте вносить данные в таблицу с помощью форм, то осмысление как правило приходит практически сразу.
А отвечать на ваши несвязанные вопросы можно годами и десятилетиями.
Сначала осмыслить свою задумку, а потом начинайте разбивать ее на зависимые частички.
Если и щас не понятно, то как всегда в этих случаях говорится - Начните читать соответствующие книжки.
Возможно в них найдете ответы на свои вопросы.
0
ᴁ ©
Эксперт MS Access
 Аватар для АЕ
4159 / 2448 / 508
Регистрация: 13.12.2016
Сообщений: 8,319
Записей в блоге: 5
18.12.2019, 23:02
Trouyan, попробуйте иначе.
1 таблица видов изделий (код, название и 10 или 100 полей безликих свойств по номерам или сколько надо (коды))
2 таблица свойств (код, название, ед.изм, к-во единиц , рисунок (если надо), описание если надо)
3 ед.измерений (название)

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

Впрочем это размышления вслух.
0
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 29
18.12.2019, 23:50  [ТС]
VinniPuh , сейчас у меня так (см. рисунок).
Как мне изделия всех трех типов вписать в одну общую таблицу в которой им будут присвоены уникальный ID ?
Пробовал через запросы, но не помогает,т.к. создаваемая таблица не связанная получается.
Миниатюры
Производственная БД  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.12.2019, 23:50
Помогаю со студенческими работами здесь

Что такое производственная практика?
Здравствуйте. Объясните, Что такое производственная практика? Никто толком не может объяснить. В этом году меня ждет производственная...

Макрос - интересная производственная задача

Роботизированная производственная система (разбор модели)
Роботизированная производственная система имеет два станка с числовым программным управлением, три робота, пункт прибытия и склад...

Интересная производственная задача. Нужны идеи.
Здравствуйте, Господа. Прошу вашей помощи в решении следующей производственной задачи: Мне необходимо создать программу, которая...

Ремонт Производственная сушилка IPSO не греет воздух, -/-
Производственная сушильная машина IPSOна 8 кг не греет воздух во время сушки. Причина - перегорел термопредохранитель в цепи управления...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru