Определите универсальную модель данных для пользовательских типов продукта

Если вы используете startActivityForResult(), то нет необходимости прослушивать вызов onResume(). У него есть метод обратного вызова, в котором вы можете написать код прокрутки в зависимости от вашего состояния.

Например:

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1); //here 1 is the request code

В вашем SecondActivity установите данные, которые вы хотите вернуть обратно в FirstActivity. Если вы не хотите возвращаться назад, не устанавливайте ничего.

Например: в SecondActivity:

Intent returnIntent = new Intent();
setResult(Activity.RESULT_OK,returnIntent);
finish();

Теперь в своем классе FirstActivity напишите следующий код для метода onActivityResult ().

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {
        if(resultCode == Activity.RESULT_OK){
            //case 2
            //Write your code
        }
    }
}
6
задан Jeff Handley 5 February 2009 в 06:49
поделиться

6 ответов

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

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

С вещами как Azure и другое устройство хранения данных сервисного вычисления Вы не должны даже определять таблицу. Каждый хранить объект в основном словарь.

2
ответ дан 17 December 2019 в 07:09
поделиться

Я думаю, что необходимо пойти с моделью данных как-

Таблица product

  • ProductId (PK)
  • ProductName
  • Подробнее

Таблица свойства

  • PropertyId (PK)
  • ProductId (FK)
  • ParentPropertyId (FK - Сам ссылаемый для категоризации свойств)
  • PropertyName
  • PropertyValue
  • PropertyValueTypeId

Справочная таблица значения свойства

  • PropertyValueLookupId (PK)
  • PropertyId (FK)
  • LookupValue

И затем имейте динамическое представление на основе этого. Вы могли использовать PropertyValueTypeId coloumn для идентификации типа, с помощью конвенции, как (0-строк, 1 целое число, с 2 плаваниями, с 3 изображениями и т.д.) - Но в конечном счете можно сохранить все невведенное только. Вы могли также использовать этот столбец для выбора шаблона управления для рендеринга соответствующего свойства пользователю.

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

1
ответ дан 17 December 2019 в 07:09
поделиться

Помещенный такое количество общей ожидаемой структуры в традиционной нормализованной модели 3NF, затем увеличьтесь со столбцами XML как соответствующие.

Я не вижу MEF (или никакой другой ORM) способность сделать все это прозрачно.

0
ответ дан 17 December 2019 в 07:09
поделиться

Суммирование позволяет взгляду на опции на рассмотрении для хранения информации о продукте: 1) некоторый xml формат в базе данных

2) подобный сообщению выше о наличии x количество типа определил столбцы (sharepoint подход)

3) через универсальную таблицу с именем и определениями типа, сохраненными в справочной таблице и значениях во вторичной таблице с идентификатором столбцов, propertyid, значение (подобный № 2 однако этот подход предоставил бы неограниченную информацию о свойстве

4) некоторый гибрид вышеупомянутой опции, где таблица product имела бы x общие столбцы (для устройства хранения данных свойств распространенными со всеми продуктами) с y определяемыми пользователем столбцами (это могло быть m целого типа и n типов varchar). Это может брать лучший из № 2 и normalzied структуры, как будто Вы знали все свойства всех продуктов. Вы получили бы лучшую производительность sql для свойств, что Вы используете большинство (вероятно, те, которые распространены через все продукты) при тихом разрешении пользовательских столбцов для определенных свойств с каждым продуктом.

Есть ли другие опции? По-моему, я рассмотрел бы 4 выше как лучший гибрид комбинаций.

  • dave
1
ответ дан 17 December 2019 в 07:09
поделиться

Я думаю, что необходимо избежать Внутреннего Эффекта Платформы и на самом деле создать таблицы для специализированных объектов. Вы будете писать определенный код для управления ими итак, почему бы не надлежащие таблицы поддержки также?

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

0
ответ дан 17 December 2019 в 07:09
поделиться

Jeff,

мы в настоящее время используем поле XML в таблице продуктов для обработки всех определенных для продукта данных. Таким образом, наша таблица продуктов имеет несколько общих полей, которые все продукты совместно используют, XML, который содержит то, в чем конкретный продукт нуждается дополнительно, и несколько вычисленных полей, которые захватывают в XML и появляются некоторые часто запрашиваемые поля как "виртуальные" поля на таблице продуктов (например, "Стиль" был бы установлен на то, что текущий продукт определяет, или ПУСТОЙ УКАЗАТЕЛЬ, если продукт не имеет Свойства стиля).

До сих пор мы были довольно гибки с тем подходом - если Вы создаете некоторые достойные схемы XSD для своего XML, можно даже создать прокси-классы C# для этих полей.

Работы приятно для нас - присоединение к лучшему из и из реляционных и из миров XML.

Marc

0
ответ дан 17 December 2019 в 07:09
поделиться
Другие вопросы по тегам:

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