2016-06-28 46 views
0

我正在为安装在计算机上的软件构建数据库。软件可以安装在多台电脑上,电脑当然可以安装多个软件。计算机上安装的数据库建模计算机和软件 - 我使用什么结构?

所有为软件存储的名称和版本。

所以,到目前为止,我曾想过为每个软件创建一张表。该表格将有一列代表相应计算机的ID以及该计算机上安装的软件的版本。

至于电脑去,我只有一个表,其中包含每台计算机的所有信息。

这是构建这个数据库的最佳方式吗?

+0

你想问的问题是我需要从数据库中获得什么信息。然后查看您需要存储哪些数据才能获取该信息。一旦你有了,你可以看看你想要的模式类型,关系型还是星型?然后如何规范化你想要你的数据等... –

+0

请编辑你的标题,具体关于你的问题。 –

回答

2

这是组织这个数据库的最佳方式吗?

我永远无法理解人们的想法创造一个单独的表在其数据库中的每个记录。但男孩没有这个想法来了很多:)

你有两个 “东西”:

  • 软件
  • 计算机

所以,你有两个实体表:

Software 
---------- 
ID 
Name 
Version 

Computer 
---------- 
ID 
[other data?] 

由于这是一个多对多的关系,所以您有一个连接表来表示关系:

ComputerSoftware 
---------- 
ComputerID 
SoftwareID 

在连接表的主键可以是这两个值的复合材料,或者可以有一个单独的ID用于与其他表的一致性。有时候,这在很大程度上取决于您使用的数据访问框架。

的一点是,你不应该修改基础上添加/删除记录模式。构建表示数据的模式,然后在该模式中添加/修改/删除记录

+0

嗯,所以说我想找到安装在特定计算机系统上的所有软件。然后,我将在“ComputerSoftware”表中搜索与计算机系统相对应的所有条目,然后通过查询软件表和相应的SoftwareID来获取软件信息。 – Derik

0

这实际上取决于您将哪些其他独特识别功能放在软件表上。您现在设置它的方式,对特定软件创建查询可能有点困难,因为您会有很多重复项。另外,似乎在不同计算机上有不同版本的软件。这里是我建议的结构:

software 
    id 
    ... 
computers 
    id 
    ... 
computers_software 
    software_id 
    computer_id 
    software_version 
    ... 
相关问题