CostEvalPlatform/models.py

50 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding: utf-8 -*-
# @Time : 2024/11/18 下午7:00
# @Author : 河瞬
# @FileName: models.py
# @Software: PyCharm
from sqlalchemy import create_engine, Column, Integer, String, DateTime, Enum, ForeignKey, Text
from sqlalchemy.orm import relationship, sessionmaker, declarative_base
from datetime import datetime
# 创建基类
Base = declarative_base()
class Tenant(Base):
__tablename__ = 'Tenant'
id = Column(Integer, primary_key=True)
name = Column(String(100), nullable=False)
users = relationship('User', backref='Tenant', cascade='all, delete-orphan')
projects = relationship('Project', backref='Tenant', cascade='all, delete-orphan')
class User(Base):
__tablename__ = 'User'
id = Column(Integer, primary_key=True)
name = Column(String(100), nullable=False)
password = Column(String(100), nullable=False)
role = Column(Integer, nullable=False) # 0: 超级管理员 1租户管理员 2评估员 3审核员
tenant_id = Column(Integer, ForeignKey('Tenant.id'), nullable=False)
class Project(Base):
__tablename__ = 'Project'
id = Column(Integer, primary_key=True)
name = Column(String(100), nullable=False)
requirement = Column(String(200), nullable=True)
start_time = Column(DateTime, nullable=False, default=datetime.utcnow)
deadline = Column(DateTime, nullable=False)
owner_id = Column(Integer, ForeignKey('Tenant.id'), nullable=False)
# owner = relationship('Tenant', backref='projects')
if __name__ == "__main__":
# 创建数据库引擎
engine = create_engine('sqlite:///test.db')
# 创建所有表
Base.metadata.create_all(engine)
# 创建会话
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)