首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为我的数据库获得适当的表设计( 0NF)

如何为我的数据库获得适当的表设计( 0NF)
EN

Stack Overflow用户
提问于 2016-04-06 17:45:47
回答 1查看 511关注 0票数 0

我必须在0NF中为我的项目设计表格,我需要先设计0NF表格,然后再进行规范化,然后绘制ERD。然而,获得表的0NF表单对我来说是一个真正的挑战,很多时间被浪费在重新设计上,所以我想向在数据库设计方面可能更有经验的人寻求帮助。

我的数据库是一个租车系统。该系统应记录客户、汽车、雇员、每一次租赁的详细情况,公司还应在不同的地点设立多个分支机构,每个分支机构必须拥有自己的一套独特(根据其车牌号码)的汽车。

  1. 一个客户可以有多个租赁记录(即一月份的租房记录,3月的.e.t.c租房记录),但一个客户的租赁记录只与一个客户相关。
  2. 一个顾客可以在一次租车中预订多辆车。
  3. 每一次租赁都是通过一个预订代理(一名雇员)进行的。
  4. 员工分为经理和预订代理。每个分支机构都有一个单独的经理,但有多个预订代理。
  5. 每个支行都有多辆车在那里,但每辆车都可以在一个支路上。

到目前为止,我已经想出了这些0NF表,它们在我看来并不正确:

Cars(CarID,LicensePlateNo,Make,型号,年份,颜色,里程,容量,座位,可用性,价格,BranchID,BranchLocation)

Customer(CustomerID,FirstName,LastName,Address,ContactNo,Gender,道布,NIC,RentalID,DateRented,RentalCost)

Agent(AgentID,FirstName,LastName,Address,ContactNo,性别,道布,NIC,MonthlyRentals,Salary,ManagerID,ManagerName,MangerLastName,ManagerAddress,ManagerContact,BranchID,BranchLocation)

Rental(RentalID,DateRented,期限,RentalCost,折扣,AgentID,CarID,LicensePlateNo,Make,Model)

Branch(BranchID,BranchName,BranchLocation,ContactNumber,ManagerID)

EN

回答 1

Stack Overflow用户

发布于 2016-04-10 16:04:42

我已将代理表替换为Employee表,并向其添加了2个新列(PositionManager)。我认为职位列应该存储“代理”或“经理”。如果雇员是代理,那么Manager字段应该包含他/她的Manager (EmployeeID).的ID如果employee是Manager,则很可能应该将Manager列保留为空。我还删除了正在重复的所有其他列(例如,BranchLocation in ,cars,表等)

汽车(CarID,LicensePlateNo,Make,型号,年份,颜色,里程,容量,座位,可用性,费率,BranchID)

客户(CustomerID,FirstName,LastName,地址,ContactNo,性别,道布,NIC,RentalID)

租金(RentalID,DateRented,工期,RentalCost,折扣,EmployeeID,CarID)

分支(BranchID,BranchName,BranchLocation,ContactNumber,EmployeeID)

员工(EmployeeID,FirstName,LastName,Address,ContactNo,性别,道布,NIC,MonthlyRentals,工资,BranchID,职位,经理)

谢谢

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36458560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档