汽车租赁系统数据库 E-R 图设计
一、实体(Entities)
- 用户(User)
- 属性:
- 用户 ID(UserId):唯一标识每个用户,通常为整数范例,自增长主键,用于区分不同用户。
- 用户名(UserName):用户登录时使用的名称,字符串范例,有肯定长度限定,且要求在系统内唯一。
- 暗码(Password):用于验证用户身份,加密存储的字符串范例,保障用户账户安全。
- 姓名(RealName):用户的真实姓名,字符串范例,方便在租赁等业务中进行身份确认等操纵。
- 性别(Gender):可采用罗列范例(如男、女等)或者用特定代码表现性别信息,便于统计分析用户特性。
- 身份证号(IDCardNumber):唯一标识用户身份的重要信息,字符串范例,具有严格的格式要求,用于实名认证等相关业务场景。
- 联系电话(PhoneNumber):方便联系用户的手机号码或其他常用电话号码,字符串范例,符合电话号码格式规范。
- 邮箱(Email):用户的电子邮箱地点,字符串范例,用于接收系统关照、找回暗码等功能,格式需符合邮箱地点规范。
- 注册时间(RegistrationTime):记录用户注册账号的具体时间,日期时间范例,可用于分析用户增长趋势等环境。
- 用户脚色 ID(RoleId):与“脚色”实体关联,表明该用户所属的脚色类别,整数范例,通过外键关联到“脚色”表。
- 车辆(Car)
- 属性:
- 车辆 ID(CarId):作为车辆的唯一标识符,整数范例,自增长主键,用于区分不同车辆个体。
- 车牌号(LicensePlateNumber):车辆上路行驶的正当牌照号码,字符串范例,具有唯一性和特定格式要求,便于识别和管理车辆。
- 车架号(VinNumber):车辆识别代码,是每辆车独一无二的编码,字符串范例,用于精准识别车辆,常用于车辆登记、维修、保险等诸多场景。
- 发动机号(EngineNumber):发动机的唯一编号,字符串范例,用于车辆发动机相关的管理与追踪,如发动机维修、保养记录等。
- 品牌(Brand):车辆的品牌名称,如大众、丰田等,字符串范例,便于用户按品牌筛选和相识车辆根本属性。
- 型号(Model):车辆具体的型号规格,比方大众帕萨特 2023 款等,字符串范例,进一步细化车辆信息,方便用户查找符合自身需求的车辆。
- 购置日期(PurchaseDate):车辆购买进入租赁系统的时间,日期范例,可用于盘算车辆折旧、使用年限等环境,也有助于分析车辆的本钱与收益关系。
- 租赁价格(RentalPrice):每单位时间(如天天、每小时等,具体由业务规则确定)车辆的租赁费用,数值范例,根据车型、市场行情等因素设定,是盘算订单金额的关键依据。
- 车辆状态(CarStatus):采用罗列范例(如可租、已租、维修中、报废等)表现车辆当前所处的状态,便于系统及时把握车辆能否用于租赁业务,以及进行相应的业务流程控制。
- 车辆图片路径(ImagePath):存储车辆外观图片在服务器上的存储路径,字符串范例,方便用户在系统前端直观地查看车辆外观,辅助租赁决议。
- 订单(Order)
- 属性:
- 订单 ID(OrderId):唯一标识每个租赁订单,整数范例,自增长主键,用于区分不同的租赁业务记录。
- 用户 ID(UserId):与“用户”实体关联,表明是哪个用户提交的租赁订单,整数范例,通过外键指向“用户”表,创建一对多的关联关系(一个用户可以有多个订单)。
- 车辆 ID(CarId):与“车辆”实体相关联,确定该订单租赁的具体车辆,整数范例,通过外键指向“车辆”表,也是一对多的关系(一辆车可以被多次租赁产生多个订单)。
- 租赁起止时间(RentalStartTime、RentalEndTime):分别记录租赁业务开始和竣事的具体时间点,日期时间范例,是盘算租赁时长、费用以及管理车辆租赁周期的重要依据。
- 租赁天数(RentalDays):根据租赁起止时间盘算得出的租赁时长天数,整数范例,可用于直观展示租赁周期给用户,同时参与费用盘算等业务逻辑。
- 取车地点(PickupLocation):用户约定提取租赁车辆的地点,字符串范例,明确租赁业务中车辆交接的起始位置,方便用户和商家安排相关变乱。
- 还车地点(ReturnLocation):租赁竣事后用户归还车辆的地点,字符串范例,与取车地点雷同,用于规范还车流程以及盘算大概涉及的异地还车费用等环境。
- 订单状态(OrderStatus):通过罗列范例(如待审核、已确认、已拒绝、已完成等)来表现订单当前所处的业务处理阶段,便于系统和相关职员对订单进行跟踪和操纵。
- 订单金额(OrderAmount):该租赁订单必要支付的总费用,数值范例,根据租赁价格、租赁天数以及大概的其他费用(如超时费、保险费等,如有相关业务规则)盘算得出,是订单的重要财务属性。
- 下单时间(OrderTime):记录用户提交租赁订单的具体时间,日期时间范例,可用于分析订单生成的规律、高峰期等环境,辅助运营管理。
- 脚色(Role)
- 属性:
- 脚色 ID(RoleId):唯一标识不同的脚色类别,整数范例,自增长主键,用于区分系统内不同权限的脚色群体,如系统管理员、商家管理员、平凡用户等。
- 脚色名称(RoleName):脚色的具体名称,比方“系统管理员”“商家管理员”“平凡用户”等,字符串范例,便于直观理解脚色的定位和权限范围。
- 脚色描述(RoleDescription):对该脚色在系统中所能执行的操纵、拥有的权限等进行详细文字描述,字符串范例,资助管理职员清晰界定不同脚色的职责界限。
- 权限(Permission)
- 属性:
- 权限 ID(PermissionId):唯一标识每个具体的权限项,整数范例,自增长主键,用于区分系统内各种各样的操纵权限,如用户添加权限、车辆删除权限等。
- 权限名称(PermissionName):直观展示该权限对应的具体操纵名称,比方“查看用户信息”“修改车辆价格”等,字符串范例,便于设置和管理权限。
- 权限描述(PermissionDescription):详细说明该权限答应执行的具体举动以及作用范围等内容,字符串范例,辅助明确权限的具体内涵和使用场景。
- 脚色 ID(RoleId):与“脚色”实体关联,表明该权限属于哪个脚色,整数范例,通过外键关联到“脚色”表,创建多对一的关系(多个权限可以归属一个脚色),以此确定不同脚色所拥有的权限聚集。
- 库存(Inventory)
- 属性:
- 库存 ID(InventoryId):唯一标识每个库存记录,整数范例,自增长主键,用于区分不同的车辆库存条目。
- 车辆 ID(CarId):与“车辆”实体关联,明确是针对哪辆车的库存记录,整数范例,通过外键指向“车辆”表,确保库存信息与具体车辆相对应。
- 库存数目(InventoryQuantity):记录当前该车辆可供租赁的数目,整数范例,用于及时监控车辆的可租余量,便于进行车辆调配、库存盘货等操纵,避免超租等环境发生。
二、实体间关系(Relationships)
- 用户与脚色(User - Role):
- 关系范例:多对一(Many-to-One)
- 描述:多个用户可以属于同一个脚色类别,比方多个平凡用户都具有“平凡用户”这一脚色所定义的权限范围。通过在“用户”表中的“用户脚色 ID(RoleId)”字段作为外键,关联到“脚色”表的“脚色 ID(RoleId)”字段来体现这种关系,从而实现根据用户所属脚色来赋予相应权限、控制其在系统中的操纵范围等功能。
- 用户与订单(User - Order):
- 关系范例:一对多(One-to-Many)
- 描述:一个用户可以提交多个租赁订单,比方一个经常租车的用户在不同时间大概有多个租车需求并产生相应订单。在“订单”表中的“用户 ID(UserId)”字段作为外键,关联到“用户”表的“用户 ID(UserId)”字段,以此表现这种一对多的关系,便于查询某个用户的全部租赁订单环境,以及从订单信息回溯到下单用户等业务操纵。
- 车辆与订单(Car - Order):
- 关系范例:一对多(One-to-Many)
- 描述:一辆车可以在不同时间段被多次租赁,从而产生多个不同的租赁订单。通过在“订单”表中的“车辆 ID(CarId)”字段作为外键,关联到“车辆”表的“车辆 ID(CarId)”字段来体现这种关系,方便追踪某辆车的租赁历史、当前及将来的租赁安排等,同时基于此关系可以在订单处理过程中确保车辆状态的正确更新以及避免重复租赁等题目。
- 脚色与权限(Role - Permission):
- 关系范例:一对多(One-to-Many)
- 描述:一个脚色可以拥有多个不同的操纵权限,比方“系统管理员”脚色大概拥有添加用户、修改系统参数、查看全部订单等多个权限。在“权限”表中的“脚色 ID(RoleId)”字段作为外键,关联到“脚色”表的“脚色 ID(RoleId)”字段,以此构建一对多的关系,用于系统进行权限管理,明确不同脚色能够执行的具体操纵聚集,保障系统的安全性和数据的合规访问。
- 车辆与库存(Car - Inventory):
- 关系范例:一对一(One-to-One)或一对多(One-to-Many),具体取决于业务场景和库存管理精细程度。
- 描述:假如库存管理是针对每辆车单独详细记录,一辆车对应一个库存记录,就是一对一关系;若存在同一辆车在不同地点、不同仓库等有多个库存条目环境,则为一对多关系。通过在“库存”表中的“车辆 ID(CarId)”字段作为外键,关联到“车辆”表的“车辆 ID(CarId)”字段来体现这种关系,有助于及时把握车辆的可租数目,合理调配车辆资源,进行库存盘货等相关业务活动。
三、数据表(Tables)
实体对应的表结构设计:
用户表(User)
字段名称数据范例是否为空备注UserIdINT AUTO_INCREMENT否用户 ID,主键,自增长UserNameVARCHAR(50)否用户名,唯一且非空PasswordVARCHAR(255)否暗码,加密存储RealNameVARCHAR(50)否真实姓名GenderENUM(‘男’, ‘女’)否性别IDCardNumberVARCHAR(18)否身份证号,唯一且格式固定PhoneNumberVARCHAR(20)否联系电话EmailVARCHAR(100)否电子邮箱地点RegistrationTimeDATETIME否注册时间RoleIdINT否外键,关联 Role 表的 RoleId,表明用户脚色 车辆表(Car)
字段名称数据范例是否为空备注CarIdINT AUTO_INCREMENT否车辆 ID,主键,自增长LicensePlateNumberVARCHAR(20)否车牌号,唯一且格式固定VinNumberVARCHAR(17)否车架号,唯一且格式固定EngineNumberVARCHAR(50)否发动机号BrandVARCHAR(50)否品牌ModelVARCHAR(50)否型号PurchaseDateDATE否购置日期RentalPriceDECIMAL(10, 2)否租赁价格CarStatusENUM(‘可租’, ‘已租’, ‘维修中’, ‘报废’)否车辆状态ImagePathVARCHAR(255)是车辆图片路径 订单表(Order)
字段名称数据范例是否为空备注OrderIdINT AUTO_INCREMENT否订单 ID,主键,自增长UserIdINT否外键,关联 User 表的 UserId,表明下单用户CarIdINT否外键,关联 Car 表的 CarId,表明租赁车辆RentalStartTimeDATETIME否租赁开始时间RentalEndTimeDATETIME否租赁竣事时间RentalDaysINT否租赁天数PickupLocationVARCHAR(100)否取车地点ReturnLocationVARCHAR(100)否还车地点OrderStatusENUM(‘待审核’, ‘已确认’, ‘已拒绝’, ‘已完成’)否订单状态OrderAmountDECIMAL(10, 2)否订单金额OrderTimeDATETIME否下单时间 脚色表(Role)
字段名称数据范例是否为空备注RoleIdINT AUTO_INCREMENT否脚色 ID,主键,自增长RoleNameVARCHAR(50)否脚色名称RoleDescriptionVARCHAR(255)否脚色描述 权限表(Permission)
字段名称数据范例是否为空备注PermissionIdINT AUTO_INCREMENT否权限 ID,主键,自增长PermissionNameVARCHAR(50)否权限名称PermissionDescriptionVARCHAR(255)否权限描述RoleIdINT否外键,关联 Role 表的 RoleId,表明所属脚色 库存表(Inventory)
字段名称数据范例是否为空备注InventoryIdINT AUTO_INCREMENT否库存 ID,主键,自增长CarIdINT否外键,关联 Car 表的 CarId,表明对应的车辆InventoryQuantityINT否库存数目
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |