Где запросы базы данных должны жить?

Это не является большим, но я люблю идею истинного nullptr. Должно было быть ключевое слово прямо от движения мерзавец.

7
задан Buns of Aluminum 1 October 2009 в 22:56
поделиться

4 ответа

Раньше я был большим специалистом по хранимой процедуре, но в прошлом году изменил свою настройку, поскольку базы данных стали быстрее, а ORM вошли в основной поток. Место для хранимых проков конечно есть. Но когда дело доходит до простого CRUD sql: вставка / обновление / выбор / удаление одного лайнера, использование ORM для обработки, на мой взгляд, является наиболее элегантным решением, но я уверен, что многие будут утверждать обратное. ORM уберет из кода построение соединений SQL и БД и сделает логику сохраняемости более гибкой, интегрированной с вашим приложением.

9
ответ дан 6 December 2019 в 12:53
поделиться

Я предлагаю разместить их как хранимые процедуры в базе данных. У вас не только будет преимущество повторного использования, но и вы убедитесь, что один и тот же запрос (являющийся выбором, обновлением, вставкой и т. Д.) Остается таким же, потому что вы используете одну и ту же хранимую процедуру. Если вам нужно его изменить, вы измените его только в одном месте. Кроме того, вы будете использовать вычислительную мощность сервера базы данных вместо сервера / компьютера, на котором находится ваше приложение. Это мое предложение.

Удачи!

4
ответ дан 6 December 2019 в 12:53
поделиться

It depends / it's situational. There are very strong arguments for and against either option. Personally, I really don't like seeing business logic get split between the database (in stored procedures) and in code, so I usually want all the queries in code to the maximum extent possible.

In the Microsoft world, there are things like Reporting Services that can retrieve data from classes/objects instead of (and in addition to) a database / stored procedures. Also, there are things like Linq that give you more strongly typed queries in code. There are also strong, mature ORMs like NHibernate that allow for writing pretty much all types of queries from code.

That said, there are still times when you are doing "rowset" types of things with your queries that work much better in a stored procedure than they work from code.

In the majority of situations, either/both options work just fine.

2
ответ дан 6 December 2019 в 12:53
поделиться

С моей точки зрения, я думаю, что сохраненные процедуры - это лучший вариант. Во-первых, их легче поддерживать, поскольку быстрое изменение одного из них означает просто запуск сценария без перекомпиляции приложения. Во-вторых, они намного лучше для безопасности. Вы можете установить разрешения на уровне sp, а не непосредственно для таблиц и представлений. Это помогает предотвратить мошенничество, потому что пользователи не могут делать что-либо напрямую с базой данных, что не указано в хранимой процедуре. Их легче настроить на производительность. При использовании сохраненных процедур вы можете использовать метаданные зависимости базы данных, чтобы определить влияние изменений базы данных на базу кода. Во многих системах не весь доступ к данным или даже операции CRUD будут осуществляться через приложение, и наличие кода там мне кажется контрпродуктивным. Если весь доступ к данным находится в одном месте (идея, которую я поддерживаю), он должен быть в базе данных, где он будет доступен для всех приложений или процессов, которым может потребоваться его использование.

Я обнаружил, что прикладные программисты часто не используют Я не рассматриваю лучший способ обработки информации базой данных, поскольку они ориентированы на приложение, а не на серверную часть. Поместив код для базы данных в базу данных, которой он принадлежит, он с большей вероятностью будет замечен и рассмотрен специалистами по базам данных, которые действительно учитывают базу данных и ее производительность. Здесь мы поддерживаем сотни баз данных и приложений. Я могу заглянуть в любую базу данных и найти код, который мне нужно найти, когда что-то работает медленно. Мне не нужно загружать код для каждого из сотен различных приложений, чтобы увидеть, какая часть мне нужна для работы.

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

Я обнаружил, что прикладные программисты часто не считают лучший способ обработки информации базой данных, поскольку они сосредоточены в приложении, а не в серверной части. Поместив код для базы данных в базу данных, которой он принадлежит, он с большей вероятностью будет замечен и рассмотрен специалистами по базам данных, которые действительно учитывают базу данных и ее производительность. Здесь мы поддерживаем сотни баз данных и приложений. Я могу заглянуть в любую базу данных и найти код, который мне нужно найти, когда что-то работает медленно. Мне не нужно загружать код для каждого из сотен различных приложений, чтобы увидеть, какая часть мне нужна для работы.

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

Я обнаружил, что прикладные программисты часто не считают лучший способ для базы данных обрабатывать информацию, поскольку они сосредоточены в приложении, а не в серверной части. Поместив код для базы данных в базу данных, которой она принадлежит, она с большей вероятностью будет увидена и проверена специалистами по базам данных, которые действительно учитывают базу данных и ее производительность. Здесь мы поддерживаем сотни баз данных и приложений. Я могу заглянуть в любую базу данных и найти код, который мне нужно найти, когда что-то работает медленно. Мне не нужно загружать код для каждого из сотен различных приложений, чтобы увидеть, какая часть мне нужна для работы.

t рассмотреть лучший способ для базы данных обрабатывать информацию, поскольку они ориентированы на приложение, а не на серверную часть. Поместив код для базы данных в базу данных, которой он принадлежит, он с большей вероятностью будет замечен и рассмотрен специалистами по базам данных, которые действительно учитывают базу данных и ее производительность. Здесь мы поддерживаем сотни баз данных и приложений. Я могу заглянуть в любую базу данных и найти код, который мне нужно найти, когда что-то работает медленно. Мне не нужно загружать код для каждого из сотен различных приложений, чтобы увидеть, какая часть мне нужна для работы.

t рассмотреть лучший способ для базы данных обрабатывать информацию, поскольку они ориентированы на приложение, а не на серверную часть. Поместив код для базы данных в базу данных, которой он принадлежит, он с большей вероятностью будет замечен и рассмотрен специалистами по базам данных, которые действительно учитывают базу данных и ее производительность. Здесь мы поддерживаем сотни баз данных и приложений. Я могу заглянуть в любую базу данных и найти код, который мне нужно найти, когда что-то работает медленно. Мне не нужно загружать код для каждого из сотен различных приложений, чтобы увидеть, какая часть мне нужна для выполнения моей работы.

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

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

1
ответ дан 6 December 2019 в 12:53
поделиться
Другие вопросы по тегам:

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