Как правильно наследовать и соединить классы? Ребят, не могу разобраться.
У меня есть три класса.
1) User (методы: создание, обновление, удаление) в mysql для пользователей отдельная таблица.
2) Organisation (методы: создание, обновление, удаление) в mysql для организаций тоже отдельная таблица.
3) Invoice (счета) (методы: создание, обновление, удаление) в mysql для счетов отдельная таблица, но содержит id_user и id_org.
Получается, что у меня третий класс Invoice грохнется, если я переименую какой-то столбец в таблицах пользователи или организации.
Я неправильно выделил сущности, или в чем причина?

21 Авг 2019 в 07:00
188 +1
0
Ответы
1

Для решения вашей проблемы, вам следует использовать наследование и соединение классов посредством ассоциации или композиции.

1) User и Organisation могут быть унаследованы от базового класса, например, Person, который будет содержать методы создания, обновления и удаления.
2) Invoice может содержать ссылки на объекты User и Organisation, а не прямые id_user и id_org, чтобы избежать проблемы при переименовании столбцов.
3) Таким образом, каждый класс будет независимым и изменения в одном из них не повлияют на другие.

Примерно так выглядеть структура классов:

class Person:
def create(self):
pass
def update(self):
pass
def delete(self):
pass
class User(Person):
# дополнительные методы для работы с пользователями
class Organisation(Person):
# дополнительные методы для работы с организациями
class Invoice:
def __init__(self, user, organisation):
self.user = user
self.organisation = organisation
def create(self):
pass
def update(self):
pass
def delete(self):
pass

Таким образом, у вас будет структура классов, которая позволит вам без проблем вносить изменения в базовые таблицы пользователей и организаций, не влияя на функционал класса Invoice.

20 Апр в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 654 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир