Советы, как структурировать мою базу данных по 2 идентификаторам? - PullRequest
0 голосов
/ 15 января 2019

Я создаю базу данных с 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 голосов
/ 15 января 2019

Имеется одна таблица для версий, одна для тестов и третья для результатов. Последняя таблица имеет ссылки на внешние ключи для двух других, и ее первичный ключ состоит из этих двух полей внешнего ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...