aws-sdk-ruby AWS :: Record :: Базовые записи в одном домене - PullRequest
1 голос
/ 30 ноября 2011

Мы используем aws-sdk для ruby, в частности, AWS :: Record :: Base.

По разным причинам нам нужно поместить записи различных объектов в одном домене в sdb.

Подход, который мы решили использовать здесь, заключается в добавлении атрибута к каждому объекту, который содержит имя объекта, и последующем включении его в предложение where методов поиска при получении объектов из sdb.

Мои вопросыдля читателей:

  1. что вы думаете об этом подходе?

  2. как это лучше всего реализовать аккуратно?Как лучше всего добавить атрибут по умолчанию, включенный в объект, не определяя его явно в каждой модели?Является ли переопределение find или где в методах поиска достаточным для того, чтобы получение объектов из sdb включало пункты, учитывающие новый атрибут по умолчанию?

Мысли приветствуются.

1 Ответ

1 голос
/ 13 декабря 2011
  1. Это действительно зависит от вашей проблемы, но я нахожу это немного неприятным.Записи о вариантах хороши и хороши, но когда вы начинаете с яблоками и динозаврами, и у них нет общих атрибутов, этот подход не имеет никакой пользы, о которой я знаю [кроме сохранения вашей (казалось бы, бессмысленной) квоты в 250 доменов SimpleDB].Если в ваших записях есть что-то общего, то я могу понять, где этот подход может быть полезен, но кто-то, как я, пострадал от устаревших систем с вариантами записей в Btrieve (достигнутых с помощью C-союзов), имеет жесткую антипатию к этомуподход.

  2. Самый чистый подход, который я могу придумать, состоит в том, чтобы ваши модели имели общего родителя посредством наследования.Затем родитель может узнать о дочерних типах и соответствующим образом реализовать запрос.Однако этот дизайн определенно не ТВЕРДЫЙ и нарушает Закон Деметры .

...