我正试着想出设计数据库的最佳方法,我真的在脑子里绕来绕去,想不出答案!
数据库的目的是显示计算机上安装了什么软件。我希望能够:
我所拥有的表格如下:
这些表格细分如下:
我遇到的主要问题是,当我试图概述可用软件的位置时(忽略了版本的),以及有多少台计算机在该位置安装了该软件,因为软件表软件名称列并不是唯一的(因为可能有不同的版本),一个位置似乎有更多的软件安装了实际可用的计算机(因为软件名称可以在一台机器上出现两次,因为版本号不包括在内)。
我认为这个问题的解决方案是创建一个计算机表、一个软件名称表和一个软件版本表(该表链接到软件名称表),但是我想不出如何以我想要的方式将所有三个表连接在一起。
请救救我!
我们非常感谢您提供的任何帮助/指导/最佳实践!我不熟悉SQL :)
谢谢,乔什
发布于 2014-07-02 15:59:55
您的模式应该可以工作。第四个表应该有计算机id,而不是名字。您将加入(我将在表中使用数字1-4 )1和2在位置id上,2和4在软件id上。软件id上的3和4(不确定您是否担心这个名称--您设计的id是跟踪它的正确方法,因为供应商确实会更改名称)。很明显,1,2和4使用这两个连接。
https://stackoverflow.com/questions/24535334
复制相似问题