房屋销售管理系统数据库实训作业PPT
1. 需求分析1.1 用户需求为了满足房屋销售管理的需求,系统需要实现以下功能:房屋信息管理包括房屋的详细信息录入、修改、删除等操作客户信息管理包括客户的...
1. 需求分析1.1 用户需求为了满足房屋销售管理的需求,系统需要实现以下功能:房屋信息管理包括房屋的详细信息录入、修改、删除等操作客户信息管理包括客户的详细信息录入、修改、删除等操作房屋销售管理包括房屋销售合同的签订、修改、删除等操作查询统计功能包括房屋销售情况的查询、统计等功能1.2 功能模块划分根据用户需求,可以将系统划分为以下四个功能模块:房屋信息管理模块客户信息管理模块房屋销售管理模块查询统计模块1.3 数据表设计根据功能模块的需求,需要设计以下数据表::用于存储房屋的详细信息:用于存储客户的详细信息:用于存储房屋销售合同的详细信息:用于存储查询统计的结果2. 数据表设计2.1 房屋信息表设计 字段名称 字段类型 字段含义 主键 房屋ID INT 房屋的唯一标识符 是 房屋名称 VARCHAR(50) 房屋的名称 是 房屋面积 FLOAT 房屋的面积 是 房屋户型 VARCHAR(20) 房屋的户型 是 房屋位置 VARCHAR(100) 房屋的具体位置 是 房屋售价 DECIMAL(10,2) 房屋的销售价格 是 房屋状态 VARCHAR(10) 房屋的状态(如已售、未售) 是 录入时间 DATETIME 房屋信息的录入时间 否 修改时间 DATETIME 房屋信息的最后修改时间 否 2.2 客户信息表设计 字段名称 字段类型 字段含义 主键 客户ID INT 客户的唯一标识符 是 客户姓名 VARCHAR(50) 客户的姓名 是 客户性别 VARCHAR(10) 客户的性别(如男、女) 是 客户年龄 INT 客户的年龄 是 客户联系方式 VARCHAR(20) 客户的联系方式(如手机号码) 是 客户职业 VARCHAR(50) 客户的职业(如公司职员、个体户等) 是 录入时间 DATETIME 客户信息的录入时间 否 修改时间 DATETIME 客户信息的最后修改时间 否 2.3 房屋销售合同表设计 字段名称 字段类型 字段含义 主键 外键约束(参照哪个表的哪个字段) 合同ID INT 合同的唯一标识符 是 - 房屋ID INT 关联的房屋ID 是 外键,参照房屋信息表的房屋ID字段 客户ID INT 关联的客户ID 是 外键,参照客户信息表的客户ID字段 合同签订时间 DATETIME 合同的签订时间 是 - 合同金额 DECIMAL(10,2) 合同的金额 是 - 合同状态 VARCHAR(10) 合同的状态(如待审核、已生效) 是 - 录入时间 DATETIME 合同的录入时间 否 - 修改时间 DATETIME 合同的最后修改时间 否 - 2.4 查询统计表设计(根据实际需求进行设计)2.4 查询统计表设计 字段名称 字段类型 字段含义 主键 外键约束(参照哪个表的哪个字段) 查询ID INT 查询的唯一标识符 是 - 查询类型 VARCHAR(20) 查询的类型(如按面积、按户型等) 是 - 查询条件 VARCHAR(100) 查询的具体条件(如面积大于100平方米等) 是 - 查询时间 DATETIME 查询的时间 是 - 结果数量 INT 查询结果的数量 是 - 结果详情 TEXT 查询结果的详细信息(以文本形式返回) 否 - 3. 数据库连接与操作3.1 数据库连接使用Python的pymysql库进行数据库连接。首先安装该库,可以使用以下命令:然后进行数据库连接,示例代码如下:3.2 数据表操作示例代码:定义要插入的数据house_info = {"房屋ID": 1,"房屋名称": "示例房屋","房屋面积": 120,"房屋户型": "三室两厅","房屋位置": "某市某区","房屋售价": 1000000,"房屋状态": "未售",}customer_info = {"客户ID": 1,"客户姓名": "张三","客户性别": "男","客户年龄": 30,"客户联系方式": "13800138000","客户职业": "公司职员",}插入数据到房屋信息表和客户信息表with connection.cursor() as cursor:# 插入房屋信息数据sql = "INSERT INTO 房屋信息表 (房屋ID, 房屋名称, 房屋面积, 房屋户型, 房屋位置, 房屋售价, 房屋状态) VALUES (%s, %s, %s, %s, %s, %s, %s)"cursor.execute(sql, (house_info["房屋ID"], house_info["房屋名称"], house_info["房屋面积"], house_info["房屋户型"], house_info["房屋位置"], house_info["房屋售价"], house_info["房屋状态"]))# 插入客户信息数据,并获取插入的客户ID值,用于后续插入销售合同数据时关联客户ID和房屋ID的外键约束条件。此处需要根据实际情况进行调整。假设通过上述插入操作后,返回的最后一个插入的自增ID即为新插入的客户ID。这里使用LAST_INSERT_ID()函数获取该ID值。在实际应用中,需要考虑到并发操作的情况,可能需要使用其他方法来获取自增ID值。customer_id = cursor.lastrowid # 通过lastrowid属性获取自增ID值,假设该值即为新插入的客户ID。实际应用中需要根据具体情况进行调整。sql = "INSERT INTO 客户信息表 (客户ID, 客户姓名, 客户性别, 客户年龄, 客户联系方式, 客户职业) VALUES (%s, %s, %s, %s, %s, %s)"cursor.execute(sql, (customer_id, customer_info["客户姓名"], customer_info["客户性别"], customer_info["客户年龄"], customer_info["客户联系方式"], customer_info["客户职业"]))