数据库建模计算机和软件安装在计算机上 - 我使用什么结构?

时间:2016-06-28 19:44:30

标签: sql database

我正在为计算机上安装的软件构建数据库。软件可以安装在多台计算机上,计算机当然可以安装多个软件。

为软件存储的所有内容都是名称和版本。

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

就计算机而言,我只有一个表,其中包含每台计算机的所有信息。

这是构建此数据库的最佳方法吗?

2 个答案:

答案 0 :(得分:2)

  

这是构建此数据库的最佳方法吗?

我永远不会理解人们在哪里可以为数据库中的每条记录创建单独的表。但男孩这个想法出现了很多:)

你有两个"":

  • 软件
  • 计算机

所以你有两个实体表:

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

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

由于它是多对多关系,因此您可以使用连接表来表示关系:

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

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

关键是,您不应该根据添加/删除记录来修改架构。构建模式以表示数据,然后在该模式中添加/修改/删除记录

答案 1 :(得分:0)

这实际上取决于您在软件表上添加的其他唯一标识功能。现在你设置它的方式,为特定软件创建查询可能有点困难,因为你会有很多重复。此外,似乎在不同的计算机上有不同版本的软件。这是我建议的结构:

software
    id
    ...
computers
    id
    ...
computers_software
    software_id
    computer_id
    software_version
    ...