powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Связывание таблиц
7 сообщений из 7, страница 1 из 1
Связывание таблиц
    #33467638
fred123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер

Есть таблицы, в которых содержатся статьи. В каждой статье может быть несколько картинок.

Для хранения данных о картинках есть таблица images
(imageid#, высота, ширина, подпись, положение)

Для связи статьи и картинок нужна связующая таблица

Вижу два варианта:

каждой таблице поставить в соотвествие свою таблицу

texts => texts_images,
news => news_images,
и т.д.

со структурой texts_images(textid,imageid)
где
textid - идентификатор статьи,
imageid - идентификатор картинки



сделать одну таблицу textimages (table,textid,imageid)
где
table - таблица, в которой лежит статья,
textid - идентификатор статьи,
imageid - идентификатор картинки


Заранее спасибо, Сергей
...
Рейтинг: 0 / 0
Связывание таблиц
    #33467739
Vasiliyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fred123
Есть таблицы, в которых содержатся статьи. В каждой статье может быть несколько картинок.

Но каждой картинке соответсвует одна статья, так? Если так, то таблица статей
text (textid, name)
а для хранения данных о картинках есть таблица images, которая примет вид:
(imageid#, высота, ширина, подпись, положение,TEXTID).
...
Рейтинг: 0 / 0
Связывание таблиц
    #33467765
fred123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vasiliyp fred123
Есть таблицы, в которых содержатся статьи. В каждой статье может быть несколько картинок.

Но каждой картинке соответсвует одна статья, так? Если так, то таблица статей
text (textid, name)
а для хранения данных о картинках есть таблица images, которая примет вид:
(imageid#, высота, ширина, подпись, положение,TEXTID).

Т.е. в таблицу images добавить два поля: table (таблица, где лежит статья) и textid (соответственно идентификатор статьи в этой таблице)
...
Рейтинг: 0 / 0
Связывание таблиц
    #33467835
Vasiliyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fred123
Т.е. в таблицу images добавить два поля: table (таблица, где лежит статья) и textid (соответственно идентификатор статьи в этой таблице)

Ага. Только проблемы будут с выборкой, попробуй статьи объединить в одну таблицу, зачем несколько таблиц, может проще в таблицу статей добавить просто признак к чему относится статья.
...
Рейтинг: 0 / 0
Связывание таблиц
    #33468126
fred123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vasiliyp
Ага. Только проблемы будут с выборкой, попробуй статьи объединить в одну таблицу, зачем несколько таблиц, может проще в таблицу статей добавить просто признак к чему относится статья.

Какие проблемы? Скорость?

А насчет объединения статей в одну таблицу, то это невозможно. У разных статей - разный формат, соотвественно в таблицах разное число атрибутов.
...
Рейтинг: 0 / 0
Связывание таблиц
    #33468248
Ц4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ц4
Гость
Возможно. Общие атрибуты всех "статей" вынести в отдельную таблицу.
...
Рейтинг: 0 / 0
Связывание таблиц
    #33468384
Vasiliyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fred123
Какие проблемы? Скорость?


Да нет на скорость это влиять никак не будет, а вот попробуй написать простой запрос к базе (не используя хранимых процедур и курсоров), в котором в зависимости от значения в первой таблице поля table подставлять в запрос реальное имя таблицы.
Когда будет одна таблица на статьи и вторая на картинки то все будет просто и летать будет:
Код: plaintext
1.
select * from table_articles ta, table_images ti where ti.id_article=ta.id

fred123
А насчет объединения статей в одну таблицу, то это невозможно. У разных статей - разный формат, соотвественно в таблицах разное число атрибутов.

А что мешает, ты же поля сразу знаешь и типы статей, заведи таблицу со всеми атрибутами, просто для статей у которых нет такого атрибута оставляй поле пустым (null). ИМХО я бы так и поступил.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Связывание таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]