Это может быть глупый вопрос.Совет по проектированию таблиц SQL Server
Некоторые рекомендации по эффективности для SQL Server 2008 R2, хотя эти серверы будут обновлены до 2014 года в течение следующих нескольких месяцев. Я создаю 3 таблицы.
t1
имеет много колонок различных типов и идентификационный числовой идентификатор, который является первичным ключом. Я ожидаю, что эта таблица войдет в низкие 1000 строк.t2
имеет отношение один-много с t1. Первичный ключ будет состоять из идентификатора t2 ID и t1. Цифровой идентификатор t2 будет отправлен приложением frontend и будет уникальным для каждого идентификатора t1. Я ожидаю, что эта таблица вернется к 50000+ строкам. Помимо этих 2 ID, он будет содержать несколько столбцов varchar различной длины.t3
имеет отношение один-много с t2. Первичный ключ может быть составным из идентификатора t3, идентификатора t1 и идентификатора t2. Опять же, числовой идентификатор t3 будет отправлен приложением frontend и будет уникальным для каждого идентификатора t2. Я ожидаю, что эта таблица будет доходить до нескольких миллионов строк. Помимо этих 3 ID, он будет содержать небольшое число столбцов даты или числа.
Мой вопрос в t2 я должен настроить столбец идентификаторов, который t3 будет ссылаться по существу означает, что первичный ключ t3 будет 2 колонки вместо 3, т.е. t3 ID и столбец идентификаторов из t2 , Будет ли это более эффективным? Следует ли индексировать этот столбец идентификатора внутри t2? помочь с присоединениями?
Должен ли я делать что-нибудь еще?
Какие поисковые запросы вы будете выполнять чаще всего? вы будете искать 't3', используя клавиши' t1' или 't2', или будут использоваться данные из других полей? Ваш ответ может сделать суррогатные или естественные ключи лучшим выбором. – Tony
В обоих случаях ** t2 ** и ** t3 ** маловероятно, что любые поисковые запросы будут выполнены независимо, хотя это может возникнуть в будущем, хотя я сомневаюсь в этом. Запросы к этим таблицам будут управляться соединением с ** t1 **. Подавляющее большинство дневных поисков будет для 1 t1 записи, и все, что находится в t2 для этого идентификатора t1, и все, что находится в t3 для этих идентификаторов t1 | t2. – Darybrain