Нужны ли Rails ограничения на уровне базы данных?

Да, вы должны передать указатель на указатель. C передает аргументы по значению, а не по ссылке.

23
задан Community 23 May 2017 в 12:13
поделиться

2 ответа

Ограничения базы данных не требуются больше, чем ремни безопасности в вашем автомобиле. Вы можете ездить сколько угодно, и все будет отлично работать, пока не возникнет проблема. Ремень безопасности (ограничения) сохранит вас (данные) в безопасности.

Поэтому настоятельно рекомендуется создать ограничения для обеспечения целостности данных на уровне базы данных, потому что весьма вероятно, что 1) вы будете взаимодействовать с базой данных в какой-то момент вне Rails и 2) вы сделаете ошибку в своем код, вызывающий недопустимые данные.

Ограничения базы данных могут потребовать больше работы, но это экономит много работы, особенно когда ваш код может делать предположения о данных и не должен выполнять множество проверок достоверности.

Причина, по которой ActiveRecord не поддерживает внешние ключи "из коробки", состоит в том, что он не зависит от базы данных, а внешние ключи не поддерживаются всеми системами баз данных.

57
ответ дан 29 November 2019 в 01:02
поделиться

Вы можете добавить поддержку внешнего ключа с помощью плагина Foreigner .

Не все базы данных, поддерживаемые ActiveRecord, поддерживают внешние ключи, поэтому инфраструктура Rails не включает их в качестве основной функции.


Примечание: приведенное выше уже не является точным, поскольку Rails добавил поддержку FK в 4.2.

9
ответ дан 29 November 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: