Дурачиться с базами данных, онлайн-разработки - PullRequest
1 голос
/ 08 февраля 2011

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

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

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

Теперь, если я храню данные в базе данных, я должен попытаться сделатьвсе в запросах (которые, я думаю, будут включать временные таблицы среди прочего), или просто использовать простые запросы и манипулировать строками, возвращенными в коде приложения?

Прямо сейчас, я думаю пойти на последний(манипулировать данными внутри приложения) и просто использовать запросы, чтобы уменьшить объем данных, которые мне нужно будет отсортировать.Что бы вы, ребята, посоветовали?

РЕДАКТИРОВАТЬ: Прямо сейчас я использую Microsoft Access, чтобы получить базовые знания и попытаться получить хороший дизайн.Благодаря опыту работы с Oracle и MySQL в IIRC вы можете запускать команды вместе в пакетном процессе и возвращать только один результат.Но не уверен, что вы можете сделать это с помощью Access.

Ответы [ 2 ]

2 голосов
/ 08 февраля 2011

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

Конечно, это подразумевает, что вам удобно думать о данных как о «наборах» и программировать в декларативном стиле. Но потратить время на то, чтобы по-настоящему освоиться с SQL и манипулировать данными с помощью SQL, в долгосрочной перспективе окупится. Не только для этого проекта, но и для проектов в будущем. Я бы также предложил использовать хранимые процедуры над запросами в коде, потому что хранимая процедура обеспечивает прекрасный уровень абстракции, позволяющий вашей структуре таблицы меняться со временем, не влияя на остальную часть системы.

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

Могу ли я спросить, почему вы используете Access, когда вам доступна гораздо лучшая база данных, такая как MSSQL Express? Путь перехода от MSSQL Express к MSSQL или SQL Azure даже довольно прост, и все, что вы делаете и испытываете сегодня (в этом проекте), полностью переводится на MSSQL Server / SQL Azure для будущих проектов, а также, если этот проект превосходит ваши ожидания. 1007 *

Я не понимаю вашего последнего утверждения о запуске пакетного процесса и получении только одного результата, но если вы можете сделать это в Oracle и MySQL, то вы можете сделать это и в MSSQL Express.

0 голосов
/ 08 февраля 2011

То, что сказал Шив, а также ...

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

Если ваши инженерные таланты не являются выдающимися, вы, вероятно, в конечном итоге получите систему управления данными домашнего производства, которая не так хорошакак в хорошей СУБД.

Кривая обучения для SQL крутая.Вам нужно научиться формулировать запросы, которые объединяют, проецируют и ограничивают данные из нескольких таблиц.Вам необходимо научиться обрабатывать обновления в контексте транзакции.

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

Кривая обучения крутая.Но вид сверху стоит подняться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...