2016-06-28 42 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 
    ... 
相關問題