Это плохо для реализации супертипа и подтипа для всех данных в базе данных? Мне нужно несколько советов по этому вопросу, прежде чем двигаться в этом направлении ...
Например,
У меня есть эти таблицы как объекты, и они связаны,
users
pages
images
entities
таблица в качестве супертипа
entity_id entity_type
1 page
2 page
3 user
4 user
5 image
6 image
users
таблица
user_id entity_id
1 3
2 4
pages
таблица
page_id entity_id
1 1
2 2
images
стол
image_id entity_id
1 5
2 6
вот таблица map images
таблица с таблицей entities
, потому что некоторые изображения принадлежат определенной странице (возможно, в блоге и т. Д. В будущем),
map_entity_image
стол
entity_id image_id
1 1
1 2
Итак, я вставлю строку в таблицу entities
, когда у меня будет страница, изображение, пользователь и т. Д., Которые нужно создать.
в конце дня строки в этих таблицах увеличатся в большом количестве. так что я волнуюсь, что он может справиться с большим количеством строк? будет ли эта база данных работать медленнее и медленнее?
В конце концов, это плохая структура?
или, может быть, я неправильно делаю супертип / подтип?
редактирование:
Я думаю, что entity
должен иметь только эти данные,
entity_id entity_type
1 page
2 page
, если я не хочу прикреплять изображения к пользователям и т. Д., Тогда должно быть так,
entity_id entity_type
1 page
2 page
3 user
4 user
возможно я ошибаюсь ...
EDIT:
так что это запрос, как я узнаю, сколько изображений прикреплено к идентификатору страницы 1,
SELECT E.*, P.*, X.*,C.*
FROM entities E
LEFT JOIN pages P ON (P.entity_id = E.entity_id)
LEFT JOIN map_entities_images X ON (X.entity_id = E.entity_id)
LEFT JOIN images C ON (C.image_id = X.image_id)
WHERE P.page_id = 1
возвращает 2 изображений.