/
Kirby
/
WorkBook
Обзор
Документация
Войти
/
Kirby
/
WorkBook
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
models.py
46 строк
2 KB
Alex
Initial commit
22 апр 2026, 20:04
22 апр 2026, 20:04
ea99408
Код
Авторство
О чём код?
import sqlalchemy as sq from sqlalchemy.orm import declarative_base, relationship Base = declarative_base() class Publisher(Base): __tablename__ = 'publisher' id = sq.Column(sq.Integer, primary_key=True) name = sq.Column(sq.String(100), unique=True, nullable=False) books = relationship('Book', back_populates='publisher') class Book(Base): __tablename__ = 'book' id = sq.Column(sq.Integer, primary_key=True) title = sq.Column(sq.String(200), nullable=False) id_publisher = sq.Column(sq.Integer, sq.ForeignKey('publisher.id'), nullable=False) publisher = relationship('Publisher', back_populates='books') stocks = relationship('Stock', back_populates='book') class Shop(Base): __tablename__ = 'shop' id = sq.Column(sq.Integer, primary_key=True) name = sq.Column(sq.String(100), unique=True, nullable=False) stocks = relationship('Stock', back_populates='shop') class Stock(Base): __tablename__ = 'stock' id = sq.Column(sq.Integer, primary_key=True) id_book = sq.Column(sq.Integer, sq.ForeignKey('book.id'), nullable=False) id_shop = sq.Column(sq.Integer, sq.ForeignKey('shop.id'), nullable=False) count = sq.Column(sq.Integer, nullable=False) book = relationship('Book', back_populates='stocks') shop = relationship('Shop', back_populates='stocks') sales = relationship('Sale', back_populates='stock') class Sale(Base): __tablename__ = 'sale' id = sq.Column(sq.Integer, primary_key=True) price = sq.Column(sq.Numeric(10, 2), nullable=False) date_sale = sq.Column(sq.Date, nullable=False) id_stock = sq.Column(sq.Integer, sq.ForeignKey('stock.id'), nullable=False) count = sq.Column(sq.Integer, nullable=False) stock = relationship('Stock', back_populates='sales') def create_tables(engine): Base.metadata.create_all(engine)