Database design 与数据库设计抗争
我正在创建一个数据库,它是一个资产登记簿。每台计算机都有一个属于某个部门的内部版本号,以及需要链接到它的特定软件,以及它的优先级 例如: 内部版本号:12345Database design 与数据库设计抗争,database-design,Database Design,我正在创建一个数据库,它是一个资产登记簿。每台计算机都有一个属于某个部门的内部版本号,以及需要链接到它的特定软件,以及它的优先级 例如: 内部版本号:12345 地点:办公室 Adobe-Dreamweaver(优先级高) Adobe-Acrobat Reader(低优先级) Adobe-冲击波(优先级中等) 大约有30座独立的大楼和30个部门 我想不出一个理想的方法来做这个?每栋楼都应该有一张单独的桌子吗?救命啊 表格设计的一种方法是: 定义您的实体(您使用的是什么概念) 定义KBM(基于密钥
地点:办公室 Adobe-Dreamweaver(优先级高)
Adobe-Acrobat Reader(低优先级)
Adobe-冲击波(优先级中等) 大约有30座独立的大楼和30个部门
我想不出一个理想的方法来做这个?每栋楼都应该有一张单独的桌子吗?救命啊 表格设计的一种方法是:
听起来您的实体是构建、部门和资产(或软件)。从那里开始。找出需要添加哪些键来将它们链接在一起,然后添加其余属性(例如优先级)。好的,我们需要两个不同的实体/表:
**Department**
BuildNumber/Id - Primary Key
Name
**Computer**
Id - Primary Key
BuildNumber - FK to department.buildnumber
**Software**
Id - Primary Key
Name
**ComputerSoftware**
Id - Primary Key
ComputerId - FK to computer.id
SoftwareId - FK to software.id
Priority
这样,您就可以拥有一台id=1的计算机,其构建号为12345。建筑编号12345只属于一个部门“办公室”
在软件表中,您将分别拥有id为1、2和3的Dreamweaver、Reader和Shockwave
“计算机软件”表定义了特定计算机上的软件。假设我们在计算机1上有Dreamweaver和Shockware,它们的优先级都是“高”,那么ComputerSoftware表中有两行表示这一点。
这方面的数据如下所示:
Id = 1
ComputerId = 1
SoftwareId = 1
Priority = "high"
及
希望这能有所帮助,John Wu的答案很好,但我也想举一个非常简单的例子。您的问题非常高,不应该有单独的表格,请分享更多关于您的模式、关系等的详细信息。
Id = 2
ComputerId = 1
SoftwareId = 3
Priority = "high"