Spaces:
Running
Running
| 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") |