Для чего используется внешний ключ Android Room? - PullRequest
0 голосов
/ 25 октября 2018

Для чего именно используется Комната @ForeignKey?

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

onDelete = ForeignKey.CASCADE

Полагаю, это не что иное, как мое данное определение (второй абзац), верно?

Причина, по которой я задаю этот вопрос, заключается в OrmLite , например, когда вы определяете foreign = true, тогда вы можете иметь базу данных объединения и заполнять стороннее значение данными.Это вы не можете сделать с @ForeignKey из комнаты.Вот подробное объяснение того, что иностранный делает в OrmLite.

Я прав?

1 Ответ

0 голосов
/ 25 октября 2018

FK (внешние ключи) - это концепция реляционной базы данных.ФК говорит, что подстуки таблицы появляются в другом месте уникально.Эквивалентно, FK говорит, что сущности, которые участвуют в отношениях (судне) / ассоциации, участвуют уникально в другом.Эти утверждения эквивалентны, потому что в реляционной базе данных таблица представляет сущности / значения, которые участвуют вместе в отношении (отправке) / ассоциации - следовательно, " реляционная модель" & "сущность- отношение Модель ".

График FK может использоваться для удобства / сокращения: условия соединения по умолчанию;предотвращение обновления недопустимых состояний;каскадные обновления;получение уникального значения, связанного с сущностью в другом отношении (корабле) / ассоциации;одновременно устанавливая значения в одном отношении (судно) / ассоциации и другом.ФК ошибочно называются «отношениями» и не должны быть известны для запроса.Должно быть известно, что они запрашивают одно значение, связанное с сущностью, но мы всегда можем просто запросить набор значений, независимо от того, всегда ли он имеет только один элемент.

FK, CK (ключи-кандидаты)), PK (первичные ключи) и суперключи (уникальные наборы столбцов / полей) являются особыми случаями ограничений, которые являются просто условиями, которые всегда выполняются в каждом состоянии базы данных и (эквивалентно) ситуации с бизнесом.Они определяются отношением (судном) s / ассоциаций и действительными бизнес-ситуациями, которые могут возникнуть.Когда мы сообщаем СУБД о них, это может предотвратить обновление до состояния, которое должно быть недействительным, поскольку оно их нарушает.

В чем разница между моделью отношений сущностей и реляционной моделью?

...