Питання більш важливе: ви б їздили із зав'язаними очима? Ось так і відбувається, якщо ви розробляєте систему без референтних обмежень. Майте на увазі, що вимоги бізнесу змінюються, змінюється дизайн додатків, відповідні логічні припущення в коді, сама логіка може бути відновлена і так далі. Загалом, обмеження в базах даних встановлюються під сучасними логічними припущеннями, здавалося б, правильними для певного набору логічних тверджень та припущень.
Протягом життєвого циклу програми референтні та перевірки даних обмежують збір даних поліції через додаток, особливо коли нові вимоги спричиняють логічні зміни програм.
До предмету цього переліку - іноземний ключ сам по собі не «покращує ефективність», а також не «погіршує результативність» з точки зору системи обробки транзакцій у режимі реального часу. Однак існує сукупна вартість перевірки обмежень у системі "пакетних" ВИСОКОГО обсягу. Отже, ось різниця в режимі реального часу та пакетних транзакцій; пакетна обробка - там, коли збільшена вартість, отримана за допомогою перевірок обмежень, послідовно обробленої партії є результатом ефективності.
У добре розробленій системі перевірки узгодженості даних здійснювались би "до" обробки пакету (проте, тут також пов'язана вартість); тому перевірки обмежень зовнішнього ключа не потрібні протягом часу завантаження. Насправді всі обмеження, включаючи зовнішній ключ, повинні бути тимчасово відключені до обробки пакету.
ЗАПИТАННЯ ЕКСПЛУАТАЦІЇ - якщо таблиці з'єднані на зовнішніх ключах, майте на увазі той факт, що стовпці іноземних ключів НЕ індексуються (хоча відповідний первинний ключ індексується за визначенням). Індексація іноземного ключа, з цього приводу, шляхом індексації будь-якого ключа, а також приєднання таблиць до індексованих допомагає кращим показникам, а не приєднанням до неіндексованого ключа з обмеженням зовнішнього ключа.
Змінюючи тематику , якщо база даних просто підтримує показ веб-сайту / візуалізацію вмісту / тощо та записування кліків, тоді база даних з повними обмеженнями для всіх таблиць перестає вбивати для таких цілей. Подумай над цим. Більшість веб-сайтів навіть не використовують базу даних для таких. Для подібних вимог, коли дані просто записуються, а не посилаються на скажімо, використовуйте базу даних в пам'яті, яка не має обмежень. Це не означає, що немає моделі даних, так логічної моделі, але немає фізичної моделі даних.