C # winforms в качестве внешнего интерфейса для доступа - PullRequest
0 голосов
/ 22 марта 2012

Я нахожусь на ранних стадиях создания приложения winform C # на основе Access db (не может использовать другие типы БД по разным причинам). Моя главная проблема заключается в том, как спроектировать БД, поскольку объем данных огромен (основан на ежедневных данных), и он заполнит ограничение на размер в течение месяца или около того. Я думал о создании новой БД для каждого месяца, но как я смогу сравнивать данные между разными БД, например, по месяцам? Я хочу, чтобы приложение C # выполняло запросы. Есть ли учебники, книги? У меня нет опыта использования и связывания переднего и внутреннего доступа.

Есть идеи? Спасибо!

Ответы [ 4 ]

2 голосов
/ 23 марта 2012

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

Вы говорите в комментарии:

Я застрял с Access из-за следующих причин: 1. Высокая стоимость SQL-сервера. 2. Я не знаком с SQL-сервером. 3. SQL Server Express (бесплатная версия) также имеет ограничение размера, хотя и больше (10 ГБ). Есть ли другие БД бесплатно и без ограничения размера? Есть ли другие БД бесплатно

Я согласен с вами, что SQL Server не является хорошим решением в вашей ситуации - высокая цена и ограничение размера являются действительными аргументами против SQL Server (как полная версия, так и Express Edition).

Так что, на мой взгляд, использование другого механизма базы данных - единственное реальное решение здесь.
Ваш третий аргумент против SQL Server звучал так: «Я не знаком с ним», но я настоятельно рекомендую вам ознакомиться * с другим ядром базы данных, кроме Access, потому что вы используете Access в вашей ситуации (ограничение размера !!! ) будет боль в долгосрочной перспективе.
(Примечание для всех придирчивых: нет, я вообще не ругаю Access - я сам зарабатываю на это.
Тем не менее, у него есть свои пределы, и когда вы заранее знаете, что достигнете предела размера в течение месяца, не стоит использовать его здесь.)

Да, вы могли бы взломать и использовать разные базы данных Access для каждого месяца, но вы действительно почувствуете боль, как только вашим пользователям потребуется загружать данные за несколько месяцев одновременно, или как только ваш начальник запросит у вас «быстрый отчет о наших продажах за последние три года»: -)

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

Существует множество бесплатных и функциональных механизмов баз данных, наиболее известные из них:

1 голос
/ 22 марта 2012

Для подключения к базам данных MS Access вы можете использовать код, показанный здесь , а затем вы можете «объединить» данные в вашем C # front-end.Вы можете написать подмножество движка БД на C #, и я полностью поддерживаю комментарии Бернарда и Брайана.

0 голосов
/ 22 марта 2012
0 голосов
/ 22 марта 2012

Ваш дизайн БД должен быть изолирован от ваших технологических решений переднего плана, и обратное также верно. См. Многоуровневая архитектура .

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

diagram from webopedia

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

...