关于如何根据2个标识符构造数据库的建议?

时间:2019-01-15 02:41:32

标签: postgresql database-design

我正在使用Postgres建立数据库。

这是我想要(从概念上)构造它的方式:

my_database = {  
    '1.0.0': {  
        'testA': result1,
        'testB': result2
    },  
    '2.0.0': {
        'testA': result3,
        'testB': result4
    }
}

为说明起见,我有一个经过版本控制的程序(例如“ 1.0.0”),并且有我在其上运行的测试(例如“ testA”),并且这些测试产生了结果(例如“ result1”)。

现在,相同的版本和相同的测试将始终产生相同的结果,因此我将要检查数据库以查看“版本1.0.0和testB”是否已具有条目。如果是这样,则无需存储任何重复的结果。

我认为测试和版本之间必须存在某种多对多关系,其中每个版本都输入了一堆测试,并且每个测试可能被多个版本使用。

我对数据库设计还很陌生,并且想知道如何设置它以便快速并节省空间,假设我有成千上万的唯一版本,每个版本都有成千上万的测试(许多不同版本共享测试)。

1 个答案:

答案 0 :(得分:1)

对于版本有一张表格,对于测试有一张表格,而对于结果则有第三张表格。后一个表具有对另两个表的外键引用,其主键由这两个外键字段组成。