Передо мной была поставлена задача разработать новый розничный магазин электронной коммерции для моей текущей работы, и я подумываю заняться им с RoR to A) Создать «настоящий» проект с моими ограниченными знаниями Rails и B) Быстро дать руководству Оборот и обратная связь (они хотят сделать это как можно скорее, и их сроки довольно нереалистичны - я говорю пару недель, чтобы перейти от ничего к рабочей модели, чтобы они могли начать продавать ее с SEO / SEM и, я шучу вам нет, «видеоблоги», потому что мой начальник слышал, что это будущее).
У нас есть структура базы данных, но она абсолютно ужасна и была собрана без всяких на то оснований, поэтому я собираюсь в значительной степени игнорировать ее и создать новую базу данных с нуля; однако у меня есть существующие данные, которые мне нужно загрузить в приложение (как я уже сказал, это приложение для электронной коммерции, и у нас есть данные о продукте). Мне нужно преобразовать эти данные в удобный для использования формат, потому что наш поставщик предоставляет нам загадочные, сокращенные имена столбцов, и они сильно денормализованы, особенно в категориях (я уже писал об этом раньше - в основном таблица категорий имеет шесть полей). по одному для каждой категории / подкатегории, причем некоторые из них будут пустыми, если эта категория не применяется).
Есть две основные проблемы, которые заставляют меня задуматься:
Как я уже сказал, данные должны быть помещены в "правильную" схему базы данных; Я не могу просто загрузить его как есть. У меня есть некоторые мысли относительно хорошей модели данных для нее, но мой анализ еще не завершен. В конечном итоге будет создано большое количество таблиц объединений для связи разных вещей (например, products_categories, products_attributes, products_prices) и т. Д., И эти таблицы будут связывать товары не по идентификатору, а по их SKU (см. Ниже).
У всего уже есть идентификатор, который сгенерирован для него, но для всего нового, что я добавляю, нужен один автоматически; Я сомневаюсь, что это будет проблемой для любой зрелой СУБД, но я знаю, что Rails любит генерировать идентификаторы самостоятельно. Кроме того, почти все таблицы, относящиеся к продукту, связаны между собой SKU (а в данных, предоставленных поставщиком, на самом деле составной ключ, состоящий из префикса и номера запаса, которые вместе составляют полный SKU), а не по ID и I. Я не уверен, если это будет проблемой производительности (конечно, я всегда мог вручную создавать индексы для этих столбцов, чтобы ускорить его). Однако это означает, что мне нужно отойти от соглашений Rails.
Короче говоря, я думаю, что Rails может быть хорошим выбором с точки зрения времени выхода на рынок и простоты разработки, но необходимость работать с существующим содержимым данных может стать проблемой, поскольку приложению потребуется развиваться вокруг этого, вместо «традиционного» Rails-приложения, и этот фактор вызывает у меня серьезные сомнения по поводу использования Rails. Есть также некоторые другие проблемы (необходимость установки Linux-сервера и тот факт, что в области, в которой я живу, очень мало разработчиков Rails, поэтому, если я уйду из компании, я в основном буду держать их в заложниках вплоть до обновлений / модификаций) , Я действительно неуверен в том, как выбрать лучший путь.