Итак, у меня есть две таблицы, назовите их User и Item.Я хочу, чтобы каждый пользователь мог помечать (например, «пялиться» вещи во вселенной Google) любой элемент.
Теперь, с точки зрения теории множеств, разумно было бы сохранить это как простое отношение между пользователямии предметы.Вызовите эту новую таблицу UserItemFlags.Таблица должна иметь два столбца;один с внешними ключами для таблицы User, другой с внешними ключами для таблицы Item.Если пользователь U помечает элемент I, это представляется присутствием строки (U, I)
в таблице UserItemFlags.
Теперь моя проблема с выражением этого в Fluent-NHibernate заключается в следующем: я не могу показатьсячтобы понять, что делать с отображением Id
.В идеале у меня не было бы идентификатора, потому что в нем нет ничего, кроме наличия или отсутствия этой связи между пользователем и элементом.Естественным следствием этой модели является то, что в таблице невозможно иметь повторяющиеся строки.Это желаемая особенность.
using FluentNHibernate.Mapping;
public class UserItemFlagsMapping : ClassMap<UserItemFlags>
{
public UserItemFlagsMapping()
{
// Aaaa! I must have an Id!
References(x => x.User).Not.Nullable();
References(x => x.Item).Not.Nullable();
}
}
Я был бы рад любым указателям в правильном направлении, даже если бы они потребовали от меня отказаться от владения языком для этого конкретного случая.