2012-01-19 1 views
7

Одним из недостатков, с которыми люди сталкиваются с использованием внешних ключей в реляционной базе данных, являются накладные расходы на обеспечение того, чтобы родительская таблица существовала до выполнения любой операции вставки. (Example). По мере роста вашей базы данных и работы этот эффект усиливается. Кто-нибудь знает, используют ли тогда крупные сайты в Интернете? Если да, то как они справляются с этими дополнительными накладными расходами? Если нет, по мере того как ваша команда разработчиков становится больше, кажется, что это может вызвать множество потенциальных ошибок/конфликтов/недопонимания/сирот-строк.Используют ли большие системы внешние ключи в своих базах данных?

Любое понимание?

+0

Накладные расходы и обеспечение достоверности данных - ненавязчиво субъективно, но будет интересно узнать, какие ответы вы получите. Я бы подумал, что это скорее CW, чем вопрос. – Andrew

+2

Многие «крупные сайты в Интернете» вообще не используют реляционные базы данных. – Magnus

+0

@ Magnus - Умм, да. Не все, возможно, не для содержимого HTML, а для транзакционных данных, которые они часто делают. – MatBailie

ответ

0

Это зависит от вашего определения «большой сайт»: если, например, онлайн-банк Citigroup является «крупным сайтом», я думаю, они это делают.

Что я подразумеваю под этим примером, является то, что использование (или не использование) внешних ключей, доступ только к хранимым процедурам и т. Д., Зависит от требований бизнес-логики (и, возможно, ее правовой базы), более чем только по техническим вопросам.

+0

Чтобы уточнить, мой акцент делается на гипотетическом веб-сайте, который имеет огромное количество данных, записывающих и считывающих из СУБД. Citigroup будет «большим сайтом» в той мере, в какой эти накладные расходы FK фактически повлияют на них. Возможно, Twitter или Wordpress - лучшие примеры. – carlbenson

+1

Twitter не должен (и AFAIK не использует) использовать РСУБД и, следовательно, не имеет внешних ключей, Wordpress не использует внешние ключи - именно мой аргумент: бизнес-логика и правовая основа не требуют этого. Citibank будет использовать их, даже если накладные расходы влияют на них, но бизнес-логика и правовые требования требуют этого. –

1

Я работаю на телекоммуникации, да, они часто, стоимость FK слишком мала по сравнению с серьезностью одного крупного инцидента (часы потерянного расследования, исправления ...), которые могут быть вызваны несчастными случаями из-за отсутствия Проверка FK.