|
|
|
|
@ -0,0 +1,522 @@
|
|
|
|
|
# Django Blog 数据模型设计文档
|
|
|
|
|
|
|
|
|
|
## 1. 系统概述
|
|
|
|
|
|
|
|
|
|
本文档详细描述了Django Blog项目的数据库模型设计。
|
|
|
|
|
|
|
|
|
|
## 2. 模型统计
|
|
|
|
|
|
|
|
|
|
系统共包含 **19** 个数据模型,分布在 **11** 个应用中。
|
|
|
|
|
|
|
|
|
|
### 应用列表
|
|
|
|
|
|
|
|
|
|
- **admin**: 1 个模型
|
|
|
|
|
- **auth**: 2 个模型
|
|
|
|
|
- **contenttypes**: 1 个模型
|
|
|
|
|
- **sessions**: 1 个模型
|
|
|
|
|
- **sites**: 1 个模型
|
|
|
|
|
- **blog**: 6 个模型
|
|
|
|
|
- **accounts**: 1 个模型
|
|
|
|
|
- **comments**: 1 个模型
|
|
|
|
|
- **oauth**: 2 个模型
|
|
|
|
|
- **servermanager**: 2 个模型
|
|
|
|
|
- **owntracks**: 1 个模型
|
|
|
|
|
|
|
|
|
|
## 3. 核心实体关系图
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
erDiagram
|
|
|
|
|
|
|
|
|
|
LogEntry {
|
|
|
|
|
AutoField id PK
|
|
|
|
|
DateTimeField action_time
|
|
|
|
|
TextField object_id
|
|
|
|
|
}
|
|
|
|
|
Permission {
|
|
|
|
|
AutoField id PK
|
|
|
|
|
CharField name
|
|
|
|
|
CharField codename
|
|
|
|
|
}
|
|
|
|
|
Group {
|
|
|
|
|
AutoField id PK
|
|
|
|
|
CharField name
|
|
|
|
|
}
|
|
|
|
|
ContentType {
|
|
|
|
|
AutoField id PK
|
|
|
|
|
CharField app_label
|
|
|
|
|
CharField model
|
|
|
|
|
}
|
|
|
|
|
Session {
|
|
|
|
|
CharField session_key PK
|
|
|
|
|
TextField session_data
|
|
|
|
|
DateTimeField expire_date
|
|
|
|
|
}
|
|
|
|
|
Site {
|
|
|
|
|
AutoField id PK
|
|
|
|
|
CharField domain
|
|
|
|
|
CharField name
|
|
|
|
|
}
|
|
|
|
|
Article {
|
|
|
|
|
AutoField id PK
|
|
|
|
|
DateTimeField creation_time
|
|
|
|
|
DateTimeField last_modify_time
|
|
|
|
|
CharField title
|
|
|
|
|
TextField body
|
|
|
|
|
}
|
|
|
|
|
Category {
|
|
|
|
|
AutoField id PK
|
|
|
|
|
DateTimeField creation_time
|
|
|
|
|
DateTimeField last_modify_time
|
|
|
|
|
CharField name
|
|
|
|
|
}
|
|
|
|
|
Tag {
|
|
|
|
|
AutoField id PK
|
|
|
|
|
DateTimeField creation_time
|
|
|
|
|
DateTimeField last_modify_time
|
|
|
|
|
CharField name
|
|
|
|
|
}
|
|
|
|
|
Links {
|
|
|
|
|
BigAutoField id PK
|
|
|
|
|
CharField name
|
|
|
|
|
CharField link
|
|
|
|
|
BooleanField is_enable
|
|
|
|
|
}
|
|
|
|
|
SideBar {
|
|
|
|
|
BigAutoField id PK
|
|
|
|
|
CharField name
|
|
|
|
|
TextField content
|
|
|
|
|
BooleanField is_enable
|
|
|
|
|
}
|
|
|
|
|
BlogSettings {
|
|
|
|
|
BigAutoField id PK
|
|
|
|
|
CharField site_name
|
|
|
|
|
TextField site_description
|
|
|
|
|
TextField site_seo_description
|
|
|
|
|
TextField site_keywords
|
|
|
|
|
}
|
|
|
|
|
BlogUser {
|
|
|
|
|
BigAutoField id PK
|
|
|
|
|
CharField password
|
|
|
|
|
DateTimeField last_login
|
|
|
|
|
BooleanField is_superuser
|
|
|
|
|
CharField username
|
|
|
|
|
}
|
|
|
|
|
Comment {
|
|
|
|
|
BigAutoField id PK
|
|
|
|
|
TextField body
|
|
|
|
|
DateTimeField creation_time
|
|
|
|
|
DateTimeField last_modify_time
|
|
|
|
|
}
|
|
|
|
|
OAuthUser {
|
|
|
|
|
BigAutoField id PK
|
|
|
|
|
CharField openid
|
|
|
|
|
CharField nickname
|
|
|
|
|
CharField token
|
|
|
|
|
}
|
|
|
|
|
OAuthConfig {
|
|
|
|
|
BigAutoField id PK
|
|
|
|
|
CharField type
|
|
|
|
|
CharField appkey
|
|
|
|
|
CharField appsecret
|
|
|
|
|
CharField callback_url
|
|
|
|
|
}
|
|
|
|
|
commands {
|
|
|
|
|
BigAutoField id PK
|
|
|
|
|
CharField title
|
|
|
|
|
CharField command
|
|
|
|
|
CharField describe
|
|
|
|
|
DateTimeField creation_time
|
|
|
|
|
}
|
|
|
|
|
EmailSendLog {
|
|
|
|
|
BigAutoField id PK
|
|
|
|
|
CharField emailto
|
|
|
|
|
CharField title
|
|
|
|
|
TextField content
|
|
|
|
|
BooleanField send_result
|
|
|
|
|
}
|
|
|
|
|
OwnTrackLog {
|
|
|
|
|
BigAutoField id PK
|
|
|
|
|
CharField tid
|
|
|
|
|
DateTimeField creation_time
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
LogEntry ||--o{ BlogUser : "user"
|
|
|
|
|
LogEntry ||--o{ ContentType : "content_type"
|
|
|
|
|
Permission ||--o{ ContentType : "content_type"
|
|
|
|
|
Article ||--o{ BlogUser : "author"
|
|
|
|
|
Article ||--o{ Category : "category"
|
|
|
|
|
Category ||--o{ Category : "parent_category"
|
|
|
|
|
Comment ||--o{ BlogUser : "author"
|
|
|
|
|
Comment ||--o{ Article : "article"
|
|
|
|
|
Comment ||--o{ Comment : "parent_comment"
|
|
|
|
|
OAuthUser ||--o{ BlogUser : "author"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 4. 详细数据字典
|
|
|
|
|
|
|
|
|
|
### admin 应用
|
|
|
|
|
|
|
|
|
|
#### LogEntry
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `django_admin_log`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | AutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| action_time | DateTimeField | | | |
|
|
|
|
|
| user | ForeignKey | | BlogUser | |
|
|
|
|
|
| content_type | ForeignKey | NULL, BLANK | ContentType | |
|
|
|
|
|
| object_id | TextField | NULL, BLANK | | |
|
|
|
|
|
| object_repr | CharField | | | |
|
|
|
|
|
| action_flag | PositiveSmallIntegerField | | | |
|
|
|
|
|
| change_message | TextField | BLANK | | |
|
|
|
|
|
|
|
|
|
|
### auth 应用
|
|
|
|
|
|
|
|
|
|
#### Permission
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `auth_permission`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | AutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| name | CharField | | | |
|
|
|
|
|
| content_type | ForeignKey | | ContentType | |
|
|
|
|
|
| codename | CharField | | | |
|
|
|
|
|
|
|
|
|
|
#### Group
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `auth_group`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | AutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| name | CharField | UNIQUE | | |
|
|
|
|
|
| permissions | ManyToManyField | BLANK | Permission | |
|
|
|
|
|
|
|
|
|
|
### contenttypes 应用
|
|
|
|
|
|
|
|
|
|
#### ContentType
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `django_content_type`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | AutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| app_label | CharField | | | |
|
|
|
|
|
| model | CharField | | | |
|
|
|
|
|
|
|
|
|
|
### sessions 应用
|
|
|
|
|
|
|
|
|
|
#### Session
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `django_session`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| session_key | CharField | PK, UNIQUE | | |
|
|
|
|
|
| session_data | TextField | | | |
|
|
|
|
|
| expire_date | DateTimeField | | | |
|
|
|
|
|
|
|
|
|
|
### sites 应用
|
|
|
|
|
|
|
|
|
|
#### Site
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `django_site`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | AutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| domain | CharField | UNIQUE | | |
|
|
|
|
|
| name | CharField | | | |
|
|
|
|
|
|
|
|
|
|
### blog 应用
|
|
|
|
|
|
|
|
|
|
#### Article
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `blog_article`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | AutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| creation_time | DateTimeField | | | |
|
|
|
|
|
| last_modify_time | DateTimeField | | | |
|
|
|
|
|
| title | CharField | UNIQUE | | |
|
|
|
|
|
| body | TextField | | | |
|
|
|
|
|
| pub_time | DateTimeField | | | |
|
|
|
|
|
| status | CharField | | | |
|
|
|
|
|
| comment_status | CharField | | | |
|
|
|
|
|
| type | CharField | | | |
|
|
|
|
|
| views | PositiveIntegerField | | | |
|
|
|
|
|
| author | ForeignKey | | BlogUser | |
|
|
|
|
|
| article_order | IntegerField | | | |
|
|
|
|
|
| show_toc | BooleanField | | | |
|
|
|
|
|
| category | ForeignKey | | Category | |
|
|
|
|
|
| tags | ManyToManyField | BLANK | Tag | |
|
|
|
|
|
|
|
|
|
|
#### Category
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `blog_category`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | AutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| creation_time | DateTimeField | | | |
|
|
|
|
|
| last_modify_time | DateTimeField | | | |
|
|
|
|
|
| name | CharField | UNIQUE | | |
|
|
|
|
|
| parent_category | ForeignKey | NULL, BLANK | Category | |
|
|
|
|
|
| slug | SlugField | BLANK | | |
|
|
|
|
|
| index | IntegerField | | | |
|
|
|
|
|
|
|
|
|
|
#### Tag
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `blog_tag`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | AutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| creation_time | DateTimeField | | | |
|
|
|
|
|
| last_modify_time | DateTimeField | | | |
|
|
|
|
|
| name | CharField | UNIQUE | | |
|
|
|
|
|
| slug | SlugField | BLANK | | |
|
|
|
|
|
|
|
|
|
|
#### Links
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `blog_links`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | BigAutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| name | CharField | UNIQUE | | |
|
|
|
|
|
| link | CharField | | | |
|
|
|
|
|
| sequence | IntegerField | UNIQUE | | |
|
|
|
|
|
| is_enable | BooleanField | | | |
|
|
|
|
|
| show_type | CharField | | | |
|
|
|
|
|
| creation_time | DateTimeField | | | |
|
|
|
|
|
| last_mod_time | DateTimeField | | | |
|
|
|
|
|
|
|
|
|
|
#### SideBar
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `blog_sidebar`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | BigAutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| name | CharField | | | |
|
|
|
|
|
| content | TextField | | | |
|
|
|
|
|
| sequence | IntegerField | UNIQUE | | |
|
|
|
|
|
| is_enable | BooleanField | | | |
|
|
|
|
|
| creation_time | DateTimeField | | | |
|
|
|
|
|
| last_mod_time | DateTimeField | | | |
|
|
|
|
|
|
|
|
|
|
#### BlogSettings
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `blog_blogsettings`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | BigAutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| site_name | CharField | | | |
|
|
|
|
|
| site_description | TextField | | | |
|
|
|
|
|
| site_seo_description | TextField | | | |
|
|
|
|
|
| site_keywords | TextField | | | |
|
|
|
|
|
| article_sub_length | IntegerField | | | |
|
|
|
|
|
| sidebar_article_count | IntegerField | | | |
|
|
|
|
|
| sidebar_comment_count | IntegerField | | | |
|
|
|
|
|
| article_comment_count | IntegerField | | | |
|
|
|
|
|
| show_google_adsense | BooleanField | | | |
|
|
|
|
|
| google_adsense_codes | TextField | NULL, BLANK | | |
|
|
|
|
|
| open_site_comment | BooleanField | | | |
|
|
|
|
|
| global_header | TextField | NULL, BLANK | | |
|
|
|
|
|
| global_footer | TextField | NULL, BLANK | | |
|
|
|
|
|
| beian_code | CharField | NULL, BLANK | | |
|
|
|
|
|
| analytics_code | TextField | | | |
|
|
|
|
|
| show_gongan_code | BooleanField | | | |
|
|
|
|
|
| gongan_beiancode | TextField | NULL, BLANK | | |
|
|
|
|
|
| comment_need_review | BooleanField | | | |
|
|
|
|
|
|
|
|
|
|
### accounts 应用
|
|
|
|
|
|
|
|
|
|
#### BlogUser
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `accounts_bloguser`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | BigAutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| password | CharField | | | |
|
|
|
|
|
| last_login | DateTimeField | NULL, BLANK | | |
|
|
|
|
|
| is_superuser | BooleanField | | | |
|
|
|
|
|
| username | CharField | UNIQUE | | |
|
|
|
|
|
| first_name | CharField | BLANK | | |
|
|
|
|
|
| last_name | CharField | BLANK | | |
|
|
|
|
|
| email | CharField | BLANK | | |
|
|
|
|
|
| is_staff | BooleanField | | | |
|
|
|
|
|
| is_active | BooleanField | | | |
|
|
|
|
|
| date_joined | DateTimeField | | | |
|
|
|
|
|
| nickname | CharField | BLANK | | |
|
|
|
|
|
| creation_time | DateTimeField | | | |
|
|
|
|
|
| last_modify_time | DateTimeField | | | |
|
|
|
|
|
| source | CharField | BLANK | | |
|
|
|
|
|
| groups | ManyToManyField | BLANK | Group | |
|
|
|
|
|
| user_permissions | ManyToManyField | BLANK | Permission | |
|
|
|
|
|
|
|
|
|
|
### comments 应用
|
|
|
|
|
|
|
|
|
|
#### Comment
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `comments_comment`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | BigAutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| body | TextField | | | |
|
|
|
|
|
| creation_time | DateTimeField | | | |
|
|
|
|
|
| last_modify_time | DateTimeField | | | |
|
|
|
|
|
| author | ForeignKey | | BlogUser | |
|
|
|
|
|
| article | ForeignKey | | Article | |
|
|
|
|
|
| parent_comment | ForeignKey | NULL, BLANK | Comment | |
|
|
|
|
|
| is_enable | BooleanField | | | |
|
|
|
|
|
|
|
|
|
|
### oauth 应用
|
|
|
|
|
|
|
|
|
|
#### OAuthUser
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `oauth_oauthuser`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | BigAutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| author | ForeignKey | NULL, BLANK | BlogUser | |
|
|
|
|
|
| openid | CharField | | | |
|
|
|
|
|
| nickname | CharField | | | |
|
|
|
|
|
| token | CharField | NULL, BLANK | | |
|
|
|
|
|
| picture | CharField | NULL, BLANK | | |
|
|
|
|
|
| type | CharField | | | |
|
|
|
|
|
| email | CharField | NULL, BLANK | | |
|
|
|
|
|
| metadata | TextField | NULL, BLANK | | |
|
|
|
|
|
| creation_time | DateTimeField | | | |
|
|
|
|
|
| last_modify_time | DateTimeField | | | |
|
|
|
|
|
|
|
|
|
|
#### OAuthConfig
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `oauth_oauthconfig`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | BigAutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| type | CharField | | | |
|
|
|
|
|
| appkey | CharField | | | |
|
|
|
|
|
| appsecret | CharField | | | |
|
|
|
|
|
| callback_url | CharField | | | |
|
|
|
|
|
| is_enable | BooleanField | | | |
|
|
|
|
|
| creation_time | DateTimeField | | | |
|
|
|
|
|
| last_modify_time | DateTimeField | | | |
|
|
|
|
|
|
|
|
|
|
### servermanager 应用
|
|
|
|
|
|
|
|
|
|
#### commands
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `servermanager_commands`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | BigAutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| title | CharField | | | |
|
|
|
|
|
| command | CharField | | | |
|
|
|
|
|
| describe | CharField | | | |
|
|
|
|
|
| creation_time | DateTimeField | BLANK | | |
|
|
|
|
|
| last_modify_time | DateTimeField | BLANK | | |
|
|
|
|
|
|
|
|
|
|
#### EmailSendLog
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `servermanager_emailsendlog`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | BigAutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| emailto | CharField | | | |
|
|
|
|
|
| title | CharField | | | |
|
|
|
|
|
| content | TextField | | | |
|
|
|
|
|
| send_result | BooleanField | | | |
|
|
|
|
|
| creation_time | DateTimeField | BLANK | | |
|
|
|
|
|
|
|
|
|
|
### owntracks 应用
|
|
|
|
|
|
|
|
|
|
#### OwnTrackLog
|
|
|
|
|
|
|
|
|
|
- **数据库表**: `owntracks_owntracklog`
|
|
|
|
|
- **管理方式**: Django管理
|
|
|
|
|
|
|
|
|
|
| 字段名 | 数据类型 | 约束 | 关联模型 | 说明 |
|
|
|
|
|
|--------|----------|------|----------|------|
|
|
|
|
|
| id | BigAutoField | PK, UNIQUE, BLANK | | |
|
|
|
|
|
| tid | CharField | | | |
|
|
|
|
|
| lat | FloatField | | | |
|
|
|
|
|
| lon | FloatField | | | |
|
|
|
|
|
| creation_time | DateTimeField | | | |
|
|
|
|
|
|
|
|
|
|
## 5. 模型关系分析
|
|
|
|
|
|
|
|
|
|
### 5.1 一对一关系 (OneToOne)
|
|
|
|
|
|
|
|
|
|
无一对一关系
|
|
|
|
|
|
|
|
|
|
### 5.2 一对多关系 (ForeignKey)
|
|
|
|
|
|
|
|
|
|
- `LogEntry.user` → `BlogUser`
|
|
|
|
|
- `LogEntry.content_type` → `ContentType`
|
|
|
|
|
- `Permission.content_type` → `ContentType`
|
|
|
|
|
- `Article.author` → `BlogUser`
|
|
|
|
|
- `Article.category` → `Category`
|
|
|
|
|
- `Category.parent_category` → `Category`
|
|
|
|
|
- `Comment.author` → `BlogUser`
|
|
|
|
|
- `Comment.article` → `Article`
|
|
|
|
|
- `Comment.parent_comment` → `Comment`
|
|
|
|
|
- `OAuthUser.author` → `BlogUser`
|
|
|
|
|
|
|
|
|
|
### 5.3 多对多关系 (ManyToMany)
|
|
|
|
|
|
|
|
|
|
- `Group.permissions` ↔ `Permission`
|
|
|
|
|
- `Article.tags` ↔ `Tag`
|
|
|
|
|
- `BlogUser.groups` ↔ `Group`
|
|
|
|
|
- `BlogUser.user_permissions` ↔ `Permission`
|
|
|
|
|
|
|
|
|
|
## 6. 索引设计
|
|
|
|
|
|
|
|
|
|
### 6.1 主键索引
|
|
|
|
|
- 所有模型默认使用自增ID作为主键
|
|
|
|
|
|
|
|
|
|
### 6.2 外键索引
|
|
|
|
|
- Django自动为所有ForeignKey和OneToOneField创建索引
|
|
|
|
|
|
|
|
|
|
### 6.3 业务索引
|
|
|
|
|
- 需要根据具体查询需求添加数据库索引
|
|
|
|
|
|
|
|
|
|
## 7. 总结
|
|
|
|
|
|
|
|
|
|
本文档详细描述了Django Blog项目的数据库模型设计,包括:
|
|
|
|
|
- 完整的模型字段定义
|
|
|
|
|
- 模型间的关联关系
|
|
|
|
|
- 数据表结构设计
|
|
|
|
|
- 索引设计建议
|
|
|
|
|
|
|
|
|
|
该设计支持博客系统的核心功能,包括用户管理、文章发布、评论系统等。
|