knowledge_base.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from sqlalchemy import create_engine, Column, Integer, String, ForeignKey, DateTime, Table, MetaData,Text
  2. from sqlalchemy.ext.declarative import declarative_base
  3. from sqlalchemy.orm import relationship, sessionmaker
  4. Base = declarative_base()
  5. metadata = MetaData()
  6. class File(Base):
  7. __tablename__ = 'kownledge_file'
  8. id = Column(Integer, primary_key=True)
  9. file_identifier = Column(String(50), unique=True, nullable=False, comment='文件唯一标识符')
  10. file_path = Column(String(255), nullable=False, comment='文件存储路径')
  11. file_name = Column(String(255), nullable=False, comment='文件名字')
  12. is_deleted = Column(Integer, default=0, comment='是否删除')
  13. # 一个文件通过知识库的base_code来关联
  14. knowledge_base_code = Column(String(50), ForeignKey('knowledge_base.base_code'), nullable=False)
  15. knowledge_base = relationship("KnowledgeBase", back_populates="files")
  16. class KnowledgeBase(Base):
  17. __tablename__ = 'knowledge_base'
  18. # 知识库表主键
  19. base_id = Column(Integer, primary_key=True)
  20. # 知识库的基础编码
  21. base_code = Column(String(50),unique=True, comment='知识库的基础编码')
  22. # 主题词
  23. theme_word = Column(String(100), comment='主题词')
  24. # 事件类型
  25. event_type = Column(String(100), comment='事件类型')
  26. # 来源单位
  27. source_unit = Column(String(100), comment='来源单位')
  28. # 发布日期
  29. publish_date = Column(DateTime, comment='发布日期')
  30. # 知识类型
  31. knowledge_type = Column(String(100), comment='知识类型')
  32. # 摘要
  33. abstract = Column(Text, comment='摘要')
  34. # 报告名称
  35. report_name = Column(String(255), comment='报告名称')
  36. files = relationship("File", order_by=File.id, back_populates="knowledge_base")