Іноземні ключі - найкращий спосіб забезпечити референтну цілісність бази даних. Уникати каскадів через магію - це як писати все на зборах, тому що ви не довіряєте магії компіляторів.
Погано - неправильне використання сторонніх ключів, наприклад, створення їх назад, наприклад.
Приклад Хуана Мануеля - це канонічний приклад, якщо ви використовуєте код, є набагато більше шансів залишити помилкові DocumentItems в базі даних, які прийдуть і вас кусають.
Каскадні оновлення корисні, наприклад, коли у вас є посилання на дані чимось, що може змінитися, скажімо, первинним ключем таблиці користувачів є ім'я, комбінація прізвища. Тоді ви хочете, щоб зміни в цій комбінації поширилися там, де вони посилаються.
@Aidan, Ця чіткість, на яку ви посилаєтесь, виходить з високою вартістю, шанс залишити помилкові дані у вашій базі даних, що не мало . Для мене, як правило, це просто недостатнє ознайомлення з БД і неможливість знайти, які ФК є, перш ніж працювати з БД, що сприяє цьому страху. Або це, або постійне зловживання каскадом, використання його там, де сутності не були концептуально пов’язані, або де потрібно зберігати історію.
sql-server
тег.