Форум программистов, компьютерный форум, киберфорум
Python: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 937

Просьба проверить ход мыслей и код

09.07.2023, 00:26. Показов 578. Ответов 2

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Просьба проверить код (комментарии, предложения) и ход мыслей (с базами мы друг друга недолюбливаем ).

Для проекта выделил следующие сущности:
- Users: него может быть много Organizations (поэтому связь один ко многим)
- Organizations: у организации может быть много Objects (поэтому связь один ко многим)
- Objects: у объекта может быть много Projects, так и Projects может относится ко многим объектам (связь многие ко многим через таблицу object_project)
- Projects: у одного проекта может быть много различного оборудования Pipelines, Devices, Pumps, Compressors (поэтому связь один ко многим)
- Substances: у каждого оборудования Pipelines, Devices, Pumps, Compressors может быть только одно вещество (поэтому связь один ко многим)

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
from sqlalchemy import ForeignKey, Column, Integer, String, Float, Table
from database import Base
from sqlalchemy.orm import relationship
 
 
class Users(Base):
    __tablename__ = 'users'
 
    id = Column(Integer, primary_key=True, index=True)
    email = Column(String, unique=True, index=True)
    user_name = Column(String, unique=True, index=True)
    # Отношение к таблице Organizations
    organizations = relationship("Organizations", cascade="all, delete-orphan")
 
 
class Organizations(Base):
    __tablename__ = 'organizations'
 
    id = Column(Integer, primary_key=True, index=True)
    # Наименование организации
    name_organization = Column(String)
    # Внешний ключ на таблицу 'users' (у одного пользователя может быть несколько организаций)
    user_id = Column(Integer, ForeignKey('users.id'))
    # Отношение к таблице Objects
    objects = relationship("Objects", cascade="all, delete-orphan")
 
object_project = Table('object_project', Base.metadata,
    Column('object_id', Integer(), ForeignKey("objects.id")),
    Column('project_id', Integer(), ForeignKey("projects.id"))
)
 
class Objects(Base):
    __tablename__ = "objects"
 
    id = Column(Integer, primary_key=True, index=True)
    # Наименование объекта (опасного производственного объекта)
    name_object = Column(String, unique=True)
    # Внешний ключ на таблицу 'organizations' (у одной организации может быть несколько объектов)
    organization_id = Column(Integer, ForeignKey('organizations.id'))
 
class Projects(Base):
    __tablename__ = "projects"
 
    id = Column(Integer, primary_key=True, index=True)
    # Наименование проекта
    name_project = Column(String)
    # Отношения многие ко многим object_project (у каждого объекта, может быть несколько проектов,
    # и наоборот)
    object_id = Column(Integer, ForeignKey('objects.id'))
    object = relationship("Objects", secondary=object_project, backref="projects")
    # Отношение к таблице pipelines
    pipelines = relationship("Pipelines", cascade="all, delete-orphan")
    # Отношение к таблице devices
    devices = relationship("Devices", cascade="all, delete-orphan")
    # Отношение к таблице pumps
    pumps = relationship("Pumps", cascade="all, delete-orphan")
    # Отношение к таблице compressors
    compressors = relationship("Compressors", cascade="all, delete-orphan")
 
 
class Pipelines(Base):
    __tablename__ = "pipelines"
    id = Column(Integer, primary_key=True, index=True)
    # Наименование трубопровода
    pipe_name = Column(String)
    # Внешний ключ на таблицу 'Projects' (у одного проекта может быть несколько трубопроводов)
    project_id = Column(Integer, ForeignKey('projects.id'))
    # Отношение один к многим (у одного трубопровода может быть одно вещество, но вещество может
    #быть у различного оборудования)
    sub_id = Column(Integer, ForeignKey('substances.id'))
 
 
class Devices(Base):
    __tablename__ = "devices"
    id = Column(Integer, primary_key=True, index=True)
    # Наименование оборудования
    dev_name = Column(String)
    # Внешний ключ на таблицу 'Projects' (у одного проекта может быть несколько оборудований)
    project_id = Column(Integer, ForeignKey('projects.id'))
    # Отношение один к многим  (у одного оборудования может быть одно вещество, но вещество может
    #быть у различного оборудования)
    sub_id = Column(Integer, ForeignKey('substances.id'))
 
 
class Pumps(Base):
    __tablename__ = "pumps"
    id = Column(Integer, primary_key=True, index=True)
    # Наименование насоса
    pump_name = Column(String)
    # Внешний ключ на таблицу 'Projects' (у одного проекта может быть несколько насосов)
    project_id = Column(Integer, ForeignKey('projects.id'))
    # Отношение один к многим (у одного насоса может быть одно вещество, но вещество может
    # быть у различного оборудования)
    sub_id = Column(Integer, ForeignKey('substances.id'))
 
 
class Compressors(Base):
    __tablename__ = "compressors"
 
    id = Column(Integer, primary_key=True, index=True)
    # Наименование компрессора
    compressor_name = Column(String)
    # Внешний ключ на таблицу 'Projects' (у одного проекта может быть несколько компрессоров)
    project_id = Column(Integer, ForeignKey('projects.id'))
    # Отношение один к многим (у одного компрессора может быть одно вещество, но вещество может
    # быть у различного оборудования)
    sub_id = Column(Integer, ForeignKey('substances.id'))
 
class Substances(Base):
    __tablename__ = "substances"
 
    id = Column(Integer, primary_key=True, index=True)
    # Наименование вещества
    sub_name = Column(String)
 
    # Отношение к таблице pipelines
    pipelines = relationship("Pipelines")
    # Отношение к таблице devices
    devices = relationship("Devices")
    # Отношение к таблице pumps
    pumps = relationship("Pumps")
    # Отношение к таблице compressors
    compressors = relationship("Compressors")
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.07.2023, 00:26
Ответы с готовыми решениями:

Html,php,js,mysql,json, правильный ли ход мыслей?
есть такая задача"дипломная работа" онлайн журнал оценок. проблема- реализация выставления оценки преподователем. проблема в добавлении...

Рекурсивная функция (задана система условий). Просьба проверить мой код
Задачу прикрепляю скрином. Сам код: #include <iostream> using namespace std; double F(int n, int m) { if (n==2)...

просьба проверить
Задача: создать структуру "видеомагазин" с элементами название, режиссер, рейтинг, цена. Реализовать поиск фильма по любому из элементов. ...

2
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
09.07.2023, 10:16
Михалыч, я в алхимию не полезу, но по верхам - Юзер в твоей схеме он кто? Это какой то клиент организации или ее работник? Почему у многих организаций один юзер? Это не придирка, я просто не понял именно эту часть.
1
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 937
09.07.2023, 12:44  [ТС]
Welemir1, юзер - пользователь который создает документы (в которых присутствуют как раз все ниже описываемые характеристики), документы могут быть для разных организаций.
Что-то вроде бухгалтера на аутсорсинге, вот он юзер, а у него много организаций и у этих организаций есть какие-то характеристики (в моем случае проекты, объекты и оборудование)

Добавлено через 2 минуты

Не по теме:

Цитата Сообщение от Welemir1 Посмотреть сообщение
Это не придирка, я просто не понял именно эту часть.
Вот никогда от тебя такого не видел, всегда сама корректность

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.07.2023, 12:44
Помогаю со студенческими работами здесь

просьба проверить...
недавно стал изучать алгебру логики и прошу подсказать: ( не A и В) или(А и В ) равняется чему если А=В=ложь? мой ответ правда,если...

Просьба проверить модель
Детали, необходимые для работы цеха, находятся на цеховом и центральном складах. На цеховом складе хранится 20 комплектов деталей,...

Просьба проверить нахождение площади круга
Даны два круга с общим центром и радиусами R1 и R2 (R1 > R2). Найти площади этих кругов S1 и S2, а также площадь S3 кольца, внешний радиус...

Метод Ньютона. Просьба проверить синтаксис
Во многих строчках выдаёт ошибку "Subscript indices must either be real positive integers or logicals." Товарищ посоветовал уточнить по...

Интеграл по поверхности. момент инерции, проверить ход решения
Дана поверхность-z=({x}^{2}+{y}^{2})/2, z<=1 плотность \gamma =1 далее я записываю двойной интеграл по поверхности и внутри него...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru