from sqlalchemy import Column, Integer, String, Float, DateTime, ForeignKey from sqlalchemy.orm import relationship import datetime # 2단계에서 만든 database.py 파일에서 Base를 가져옵니다. from database import Base # 1. 'articles' 테이블 설계도 class Article(Base): __tablename__ = "articles" # 테이블 이름 article_id = Column(Integer, primary_key=True, index=True) title = Column(String(500)) # 500자로 길이 제한 body = Column(String(10000)) # 10000자로 길이 제한 source = Column(String(100), nullable=True) # 출처 (없을 수도 있음) collected_at = Column(DateTime, default=datetime.datetime.utcnow) # 'analysis_results' 테이블과의 관계 설정 (1:N) results = relationship("AnalysisResult", back_populates="article") # 2. 'analysis_results' 테이블 설계도 class AnalysisResult(Base): __tablename__ = "analysis_results" # 테이블 이름 result_id = Column(Integer, primary_key=True, index=True) # 'articles' 테이블의 'article_id'를 참조하는 외래 키 article_id = Column(Integer, ForeignKey("articles.article_id")) aggro_score = Column(Float) mismatch_score = Column(Float) crossref_score = Column(Float) final_risk = Column(Float) analyzed_at = Column(DateTime, default=datetime.datetime.utcnow) # 'articles' 테이블과의 관계 설정 article = relationship("Article", back_populates="results")