Справочные таблицы динамически в MySQL / Codeigniter? - PullRequest
1 голос
/ 28 февраля 2011

Вот пример использования моей команды: В системе существуют различные типы объектов (например, пользователь, фотография, ссылка, видео, тег, фототег и т. Д.). Теперь у каждого объекта есть своя таблица. При поиске объектов для любых целей (например, в режиме реального времени, отслеживания активности, маркировки различных типов объектов и т. Д.) В идеале система должна знать три вещи:
1) Идентификатор объекта
2) Тип объекта
3) Детали объекта от объекта в зависимости от варианта использования

Для 1 и 2 я обрабатываю это, добавляя два столбца: object_id, object_type - это всегда будет сообщать мне идентификатор и какой объект ссылается на Id. Но для шага 3 проблема состоит в том, чтобы получить детали объекта, мне нужно знать, к каким таблицам относится каждый объект. Так как мне это сделать? Я использую MySQL и php.

Один из способов, который я могу придумать, - это иметь таблицу, которая имеет отношение между объектом и таблицами схемы. Но недостатком является то, что я должен всегда присоединяться к нему, чтобы получить имя таблицы, а затем искать эту таблицу. Я надеюсь пропустить любое присоединение. Есть ли что-то, что можно сделать внутри codeignitor для этой или любой логики приложения, чтобы добавить, которая может определять, на какую таблицу ссылаться в зависимости от типа объекта динамически? И, может быть, мне даже не нужен столбец object_Type, и система может найти таблицу самостоятельно только из object_id и page_id или что-то еще?

1 Ответ

1 голос
/ 28 февраля 2011

Вы говорите о [polymorphic associations][1], который в настоящее время поддерживает Rails.Я не думаю, что Codeigniter поддерживает это by default (используйте другой слой [ORM]).Тем не менее, единственное, о чем я могу думать, это иметь библиотеку, обрабатывающую это, но это все будут условные операторы (ifs).

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