Подходит ли шаблон ActiveRecord только для приложений с более простыми требованиями к доступу к данным?

#sql-server #stored-procedures #activerecord

#sql-server #хранимые процедуры #activerecord

Вопрос:

Я относительно новый пользователь шаблона ActiveRecord. Мне было интересно, подходит ли этот шаблон для большой реляционной базы данных. Допустим, у нас есть около 15 связанных таблиц, имеет ли смысл выполнять CRUD с использованием шаблона AR? Например:

tblCustomer

tblCustomerNames

tblCustomerAddresses

tblCustomerDocuments

tblCustomerPhoneNumbers

и так далее .. Обратите внимание, что у клиента может быть более одного имени (например, maiden, legal и т.д.), Более одного адреса. По какой-то причине у меня такое чувство, что было бы лучше и быстрее, если бы мы использовали хранимую процедуру вместо этого. Возможно, я возвращаюсь к тому, к чему привык, но, пожалуйста, поправьте меня, если я ошибаюсь.

Ответ №1:

Вы правы. Шаблон Active Record может стать чрезвычайно разговорчивым, когда дело доходит до загрузки связанных данных. Есть несколько способов избежать этого, но в целом я бы создал набор представлений, которые предоставляют нужные вам данные. На мой взгляд, лучше предоставлять только необходимые данные на определенном экране в режиме просмотра только для чтения и выполнять изменения с помощью хранимых процедур. CRUD следует создавать с помощью хранимых процедур также из соображений безопасности. Использование хранимой процедуры дает вам дополнительное преимущество — вы можете изменять внутреннюю логику операции без необходимости изменять клиентский код.