Это очень сложный вопрос. Я попытался, но я не нашел того, что искал.Настройка конфигурации таблицы SQL Server
Я попытаюсь объяснить это как можно лучше.
У меня есть настройка базы данных, и я пытаюсь добавить некоторые функции. Я беспокоюсь о производительности, избыточности данных и так называемых передовых методах.
У меня есть несколько пользователей в базе данных, и я пытаюсь настроить «тесты» для каждого пользователя. Каждый пользователь может иметь теоретически бесконечное количество тестов (хотя на самом деле это почти всегда меньше 5, но я не хочу ограничивать себя этим), и каждый тест может иметь другой набор значений для каждого движения вперед и управления оценивает ориентиры на предстоящие 3-4 года. Это означает, что каждый год будет достигнуто другое контрольное значение.
Вот пример.
Человек А
Benchmark 1: 2010, 2011, 2012, 2013, 2014, 2015
Benchmark 2: 2010, 2011, 2012, 2013, 2014, 2015
так далее и так далее для каждого пользователя и каждого теста.
Мой вопрос заключается в следующем:
- Как я должен настроить таблицы для этого?
Вариант 1: Настройка эталонного таблицу, которая имеет отношение к пользователю и столбцам для каждого года. Мне нужно было бы обновлять базу данных каждый год и добавлять еще один столбец для нового года, и он может расти из-под контроля в течение очень длительного периода времени.
Вариант 2: Настройте таблицу для имен тестов с отношением к пользователю, таблицу с годами и таблицу с эталонными данными, которые имеют отношение к эталону и году? Это похоже на лучший подход для обслуживания, но это также означает, что одно и то же имя теста будет существовать несколько раз, но с другим годом и стоимостью. Мне не нужно было бы добавлять колонку в течение нового года, просто убедитесь, что год существует в таблице лет.
Вариант 3: Что-то, что вы, ребята, говорите мне, является лучшим вариантом? Я надеюсь.
Предположим, что наборы данных большие и есть много пользователей.
Я не вижу цели вашей таблицы usersXbenchmarks. Для этой цели служит user_id в таблице контрольных показателей. – Bill
@Bill - Хорошая точка. –