mus
Новичок
Как типизировать сущность? Вопрос по проектированию.
Есть загвоздка в проектировании проекта. Для начала определимся с сущностями и их назначением, а также связями между ними.
Следующий блок информации перегружен сложными терминами. Краткое описание приведено после блока описания сущностей.
Материал - это сущность, имеющая несколько различных типов:
* Текстовая информация (стих, статья). Здесь мы встречаем первое ограничение - и стих и статья и рецензия и т.д. должны иметь одинаковые атрибуты, как то - название, дата, текст, ссылка. Для всей текстовой информации сущности материал это одинаково.
* Изображение.
* Мультимедиа (музыка, видео).
Суть типизации материала состоит в том, что отображение этого самого материала на сайте имеет свои особенности. Нельзя разместить и стихи и фотогалерею в одной категории, ибо получится полная каша. К стихотворению добавить картинку-рисунок, без которого не обойтись - это одно (картинка будет атрибутом сущности "материал" типа "текстовая информация").
На сайте будет возможность добавлять сущности этого типа разными способами, то есть для стиха - одна форма, для фотографий другая, для музыки и видео - третья.
Категория - это отдельная сущность. Изначально мы, независимо от сущности "автор", создаем список категорий, необходимых для того, чтобы расформировать информацию по нужным отсекам. По сути категории - это некий контейнер, куда мы будем сгружать работы тех или иных авторов. У этих категорий будет две особенности. Первая - если у того или иного автора не будет работ в какой-либо из категорий, то категория эта отображаться у сего автора не будет. Вторая - изначально нужно будет указать тип размещаемого в категории материала. Вторая особенность является и вторым ограничением.
Простая интерпретация.
Мы имеем категории, выводимые на сайте слева (как меню). Кликая по категории у нас отображается материал, который соответствует этой категории по принципу многие к одному. Материал может быть стихом, изображением или же мультимедиа-объектом (музыка, видео).
Отсюда вопрос - как объединить в реляционной базе данных объекты с разным количеством атрибутов? Нельзя же хранить в одной таблице стихотворение с массой собственных атрибутов и в этой же таблице информацию о mp3 файле.
1) Стоит ли разъединить эти сущности и разместить их в отдельных таблицах?
2) Если не стоит разъединять, то как правильно организовать подобную структуру?
Есть загвоздка в проектировании проекта. Для начала определимся с сущностями и их назначением, а также связями между ними.
Следующий блок информации перегружен сложными терминами. Краткое описание приведено после блока описания сущностей.
Материал - это сущность, имеющая несколько различных типов:
* Текстовая информация (стих, статья). Здесь мы встречаем первое ограничение - и стих и статья и рецензия и т.д. должны иметь одинаковые атрибуты, как то - название, дата, текст, ссылка. Для всей текстовой информации сущности материал это одинаково.
* Изображение.
* Мультимедиа (музыка, видео).
Суть типизации материала состоит в том, что отображение этого самого материала на сайте имеет свои особенности. Нельзя разместить и стихи и фотогалерею в одной категории, ибо получится полная каша. К стихотворению добавить картинку-рисунок, без которого не обойтись - это одно (картинка будет атрибутом сущности "материал" типа "текстовая информация").
На сайте будет возможность добавлять сущности этого типа разными способами, то есть для стиха - одна форма, для фотографий другая, для музыки и видео - третья.
Категория - это отдельная сущность. Изначально мы, независимо от сущности "автор", создаем список категорий, необходимых для того, чтобы расформировать информацию по нужным отсекам. По сути категории - это некий контейнер, куда мы будем сгружать работы тех или иных авторов. У этих категорий будет две особенности. Первая - если у того или иного автора не будет работ в какой-либо из категорий, то категория эта отображаться у сего автора не будет. Вторая - изначально нужно будет указать тип размещаемого в категории материала. Вторая особенность является и вторым ограничением.
Простая интерпретация.
Мы имеем категории, выводимые на сайте слева (как меню). Кликая по категории у нас отображается материал, который соответствует этой категории по принципу многие к одному. Материал может быть стихом, изображением или же мультимедиа-объектом (музыка, видео).
Отсюда вопрос - как объединить в реляционной базе данных объекты с разным количеством атрибутов? Нельзя же хранить в одной таблице стихотворение с массой собственных атрибутов и в этой же таблице информацию о mp3 файле.
1) Стоит ли разъединить эти сущности и разместить их в отдельных таблицах?
2) Если не стоит разъединять, то как правильно организовать подобную структуру?