Я имею в виду следующее:
- A продукт может иметь несколько категорий
- A категория может быть в разных продуктах.
- A категория имеет родителя (категорию), если это не общая категория (в этом случае родитель будет нулем)
Думая с точки зрения реляционной базы данных, я хотел бы реализовать это как
- Таблица Товар
- Таблица product_category (в качестве первичных ключей: product_id, category_id)
- Таблица категория (с parent_id, ссылающимся на категорию, или ноль, если это "общая" категория)
Думая с точки зрения моделирования Rails, у меня есть следующее (я избегаю писать поля, которые не имеют значения для этой проблемы отношений / иерархии, с которой я имею дело):
class Product < ActiveRecord::Base
...
has_many :categories
class Category < ActiveRecord::Base
...
Here comes de doubt: How do I specify the parent_id?
Есть ли способ указать, что у категории есть один и только один родительский идентификатор, который ссылается на другую категорию?