Например, скажем, у меня есть фильмы, в которых есть изображения и выбранное изображение. Кроме того, есть Актеры, у которых также есть изображения, один из них — ProfileImage и т. д.
Если я просто создам следующее:
Код: Выделить всё
class Image
{
public int Id { get; set; }
public string Path { get; set; }
public byte[] Image { get; set; }
}
class Movie
{
public int Id { get; set; }
public string Title { get; set; }
public ICollection Images { get; set; }
public Image SelectedImage { get; set; }
}
class Actor
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection Images { get; set; }
public Image ProfileImage { get; set; }
}
Код: Выделить всё
CREATE TABLE IF NOT EXISTS "MyImages"
(
"Id" TEXT NOT NULL CONSTRAINT "PK_MyImages" PRIMARY KEY,
"Path" TEXT NOT NULL,
"Image" BLOB NOT NULL,
"MovieId" TEXT NULL,
"ActorId" TEXT NULL,
CONSTRAINT "FK_MyImages_Movies_MovieId" FOREIGN KEY ("MovieId") REFERENCES "Movies" ("Id")
CONSTRAINT "FK_MyImages_Movies_ActorId" FOREIGN KEY ("ActorId") REFERENCES "Actors" ("Id")
... for all other classes that have an image array in them ...
);
Подробнее здесь: https://stackoverflow.com/questions/798 ... ithout-fks
Мобильная версия