powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / связь один к одному
7 сообщений из 7, страница 1 из 1
связь один к одному
    #32594367
Ape
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто знает, как решить задачу связи один-к-одному для таблиц SQL?
...
Рейтинг: 0 / 0
связь один к одному
    #32594533
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если у двух таблиц связь 1х1 - надо сделать из них одну
Я так думаю (с)МиминО

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
связь один к одному
    #32594873
Ape
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Marat_LЕсли у двух таблиц связь 1х1 - надо сделать из них одну
Я так думаю (с)МиминО


Это круто!!! А если при множестве реляционных связей от одной таблицы выделяется таблица свойств объектов этой таблицы, нужна связь один-к-одному.
Я так думаю! Ж;-)
...
Рейтинг: 0 / 0
связь один к одному
    #32595214
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ape
Это круто!!! А если при множестве реляционных связей от одной таблицы выделяется таблица свойств объектов этой таблицы, нужна связь один-к-одному.
Это ирония? Вопрос? Или утверждение?
Буду предполагать, что последнее.

Если просто отделить от таблицы колонку просто сохранив ключ для связи с исходной таблицей - да. Получится связь 1х1.
Вот только зачем это?
Чтобы потом объединять каждый раз две таблицы по ключу, заставляя сервер перебирать их декартово произведение? Зачем сложно, когда можно просто.

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

Или я не понял тонкой мысли?

PS: Кстати есть форум "Проектирование БД". Уместнее задать этот вопрос там. Там сидят такие крокодилы, что решат все Ваши сомнения.
...
Рейтинг: 0 / 0
связь один к одному
    #32595262
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Marat_L
могу привести пример когда связь "один к одному" может быть полезной.
В алгоритме Nested Sets (алгоритм хранения деревьев в таблице).
Цитата из статьи :
авторопыт показывает, что структуру с обходом дерева лучше хранить отдельно от
данных, т.к. в этом случае при обновлении таблицы очень долго обновляются
индексы, да и данные могут сделать невозможным формат записи фиксированной
длины, что тоже кардинально скажется на скорости.
Самой оптимальной структурой по-моему будет:

CREATE TABLE categories (
cat_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
cat_left INT UNSIGNED NOT NULL,
cat_right INT UNSIGNED NOT NULL,
cat_level INT UNSIGNED NOT NULL,
PRIMARY KEY(cat_id)
KEY (cat_left, cat_right, cat_level)
);

В итоге MySQL за многими запросами даже не будет обращаться к файлу с данными.
Ему будет хватать файла с индексами. А когда уже пройдёт всё фильтрование в
таблице с деревом, по примари-кею быстро произойдёт линкование с остальными
данными.
...
Рейтинг: 0 / 0
связь один к одному
    #32595451
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пожалуй да.
Иногда наверное надо. Например в случаях когда
1) Часть полей по логическому содержанию можно объединить в отдельную группу
2) Эта часть полей очень часто модифицируется
3) В таблице много других полей с индексами, которые обновляются значительно реже
4) А самое главное вычислительные издержки на 2) ощутимо превосходят издержки на объединение (хотя это трудно оценить)

Да. В принципе я был не прав.

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
связь один к одному
    #32597587
Ape
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Макс М.
могу привести пример когда связь "один к одному" может быть полезной.
В алгоритме Nested Sets (алгоритм хранения деревьев в таблице).
Цитата из статьи :
.
.
.
В итоге MySQL за многими запросами даже не будет обращаться к файлу с данными.
Ему будет хватать файла с индексами. А когда уже пройдёт всё фильтрование в
таблице с деревом, по примари-кею быстро произойдёт линкование с остальными
данными.


Вот это совершенно верное представление проблемы. Именно для этого мне оно и надо. Но вот вопрос КАК???
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / связь один к одному
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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