MySQL数据库建表脚本示例

需积分: 45 10 下载量 83 浏览量 更新于2024-09-08 收藏 1KB TXT 举报
"MySQL建表语句示例" 在MySQL数据库管理系统中,建表语句(CREATE TABLE)用于创建新的数据库表。以下是一些关键知识点,这些知识点基于提供的表结构示例进行了解析: 1. **数据库选择**: 在开始创建表之前,首先通过`USE`语句指定要使用的数据库,例如:`USE forum;` 这里选择了一个名为`forum`的数据库。 2. **用户表(user)**: - `id`:主键字段,整型(int),长度11,非空(NOT NULL),通常用作唯一标识用户。 - `nick_name`:昵称,最大长度32,非空,用于显示用户名称。 - `password`:密码,长度64,非空,通常存储加密后的密码。 - `email`:邮箱地址,最大长度32,非空,用于用户注册和登录验证。 - `status`:用户状态,最大长度16,非空,表示用户的账号状态(如激活、禁用等)。 3. **用户属性表(user_profile)**: - `id`:主键字段,与用户表中的`id`关联,表示用户属性的归属。 - `sex`:性别,长度1,非空,可能值如'男'、'女'。 - `msn`:MSN账号,最大长度32,可为空,提供用户联系信息。 - `sign`:签名,最大长度64,可为空,用户自定义的签名。 - `birthday`:生日,日期类型,可为空,记录用户的出生日期。 - `hobby`:爱好,最大长度64,可为空,用户兴趣爱好描述。 - `location`:位置,最大长度64,可为空,用户的地理位置信息。 - `description`:个人描述,最大长度64,可为空,用户自我介绍。 4. **分组表(group)**: - `id`:主键,整型,长度11,非空,标识分组。 - `create_time`:创建时间,日期时间类型,非空,记录分组的创建日期和时间。 - `modified_time`:修改时间,日期时间类型,非空,记录分组信息最后更新的时间。 - `name`:分组名,最大长度32,非空,分组的名称。 - `status`:分组状态,最大长度16,可为空,表示分组是否可用或被禁用。 - `description`:分组描述,最大长度64,可为空,对分组的简单介绍。 5. **用户分组关系表(user_group)**: - `user_id`:外键,与用户表中的`id`关联,表示用户在分组中的角色。 - `group_id`:外键,与分组表中的`id`关联,表示用户所属的分组。 - `user_type`:用户类型,整型,非空,可能表示普通成员、管理员等角色。 - `create_time`:加入时间,日期时间类型,非空,记录用户加入分组的日期和时间。 - `modified_time`:修改时间,日期时间类型,非空,记录用户角色或权限变动的时间。 - `status`:关系状态,最大长度16,可为空,如正常、禁言等。 6. **讨论组帖子表(group_message)**: - `id`:主键,整型,长度11,非空,标识帖子。 - `group_id`:外键,与分组表中的`id`关联,表示帖子所在的讨论组。 - `user_id`:发帖者ID,整型,非空,关联用户表,表示发帖的用户。 - `author`:作者,字符串,最大长度32,非空,与用户表中的`nick_name`对应,显示发帖者的昵称。 - `create_time`:发帖时间,日期时间类型,非空,记录帖子的创建日期和时间。 以上就是基于提供的MySQL建表语句所涵盖的关键知识点。这些语句创建了论坛系统中常见的四个核心表,包括用户管理、用户属性、分组管理和用户与分组的关系,以及讨论组内的帖子信息。这些表结构为论坛的运行提供了基础的数据模型。