project-tdm / models.py
hy
Initial commit
2755fb0
raw
history blame
1.46 kB
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")