Основные данные: Могу ли я добавить отношение к родительскому объекту? - PullRequest
0 голосов
/ 26 апреля 2011

Я создал объект Photo, который имеет атрибут Data для хранения данных изображения. Photo является родителем объекта Thumbnail. Я также добавил отношение один к одному между Photo и Thumbnail, чтобы Photo могло иметь Thumbnail.

Кажется, это работает, но это немного сбивает с толку.

Как вы думаете, лучше создать другую сущность с именем Image, которая имеет атрибут данных изображения, и сделать Photo & Thumbnail потомками Image?

1 Ответ

1 голос
/ 26 апреля 2011

Считаете ли вы, что лучше создать другую сущность с именем Image, которая имеет атрибут данных изображения и сделать Photo & Thumbnail потомками Image?

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

Предположим, у вас был объект Person, у которого были данные изображения, но изображения были разных размеров или типов, но вам нужно, чтобы все объекты изображения были в одинаковых отношениях.Вы бы настроили все так:

Person{
    images<-->>Image.person
}

Image{
    person<<-->Person.images
}

GIF:Image{
    //... GIF related attributes
}

JPG:Image{
    //... JPG related attributes
}

Поскольку сущности GIF и JPG наследуются от Image, вы можете поместить оба в отношение Person.images.

В вашем случае, по-видимому, нет никакой особой причины, кроме аналогии с классами, чтобы Photo и Thumbnail наследовали от общей супер сущности.

Кроме того, если вы используете хранилище SQLite, все дочерние объекты родительского объекта оказываются в одной таблице.Для очень больших наборов данных это может создать проблемы с производительностью.Так что это еще одна причина не использовать наследование сущностей только для аккуратности.

...