优化数据库模型与关系

This commit is contained in:
2025-09-27 22:40:10 +08:00
parent cf5539f3c2
commit 0d45a07ba7
10 changed files with 81 additions and 23 deletions

View File

@@ -2,7 +2,7 @@
from typing import Optional, TYPE_CHECKING
from datetime import datetime
from sqlmodel import Field, Relationship, Column, func, DateTime
from sqlmodel import Field, Relationship, UniqueConstraint
from .base import TableBase
from .database import get_session
from sqlmodel import select
@@ -24,6 +24,8 @@ class User(TableBase, table=True):
__tablename__ = 'users'
email: str = Field(max_length=100, unique=True, index=True, description="用户邮箱,唯一")
phone: str = Field(default=None, nullable=True, index=True, description="用户手机号,唯一")
nick: Optional[str] = Field(default=None, max_length=50, description="用户昵称")
password: str = Field(max_length=255, description="用户密码(加密后)")
status: Optional[bool] = Field(default=None, sa_column_kwargs={"server_default": "0"}, description="用户状态: True=正常, None=未激活, False=封禁")
@@ -44,11 +46,15 @@ class User(TableBase, table=True):
# 关系
group: "Group" = Relationship(
back_populates="users",
sa_relationship_kwargs={"foreign_keys": "User.group_id"}
sa_relationship_kwargs={
"foreign_keys": "User.group_id"
}
)
previous_group: Optional["Group"] = Relationship(
back_populates="previous_users",
sa_relationship_kwargs={"foreign_keys": "User.previous_group_id"}
sa_relationship_kwargs={
"foreign_keys": "User.previous_group_id"
}
)
downloads: list["Download"] = Relationship(back_populates="user")