Мне нужно, чтобы приложение было в состоянии узнать, из какой главы, подглавы и записи произошла случайная текстовая запись
В описываемых вами таблицах не указано, какая глава или подраздел содержит записьони не могут ответить на ваш запрос.
PS
У вас может быть базовая таблица CSE, содержащая строки, в которых "запись главы C подраздела S - E".Затем вы можете выполнить поиск текста, используя таблицу для строк, в которых «запись главы C - это ИД, а ID записи - это ТЕКСТ И Е = ИД», которая выбрана * из записей внутреннего соединения CSE для Е = ИД.Но: CSE & Chapters и т. Д. Не могут содержать только какие-либо значения.Например, идентификаторы глав уникальны, то есть count (выберите ID из глав) = count (Chapters) - ограничение суперключа (SQL UNIQUE NOT NULL), кандидат на ограничение SQL PK (первичный ключ).Например, значения CSE C должны быть значениями идентификатора главы, т. Е. Выбрать C из CSE <= выбрать идентификатор как C из разделов - часть ограничения FK (внешний ключ).Например, если нет пустых глав, выберите C из CSE> = выберите ID как C. из глав.
Или у вас могут быть базовые таблицы CS "глава C содержит подглаву S" & SE "подглава S содержит запись E"поэтому CSE = CS естественное объединение SE.К сожалению, это требует множества других ограничений, которые сводятся к тому, что (удивительно) CSE = CS естественное объединение SE.
Вы не хотите использовать только одну базовую таблицу вместо CSE и остальные 3, потому что этоусложняет ограничение: каждый раз, когда появляется идентификатор главы, он имеет одно и то же имя, а каждый раз, когда появляется идентификатор подглавы, он с одним и тем же номером.
Это не означает, что CSE + ваши 3 таблицы - лучший дизайнили хороший дизайн.Я просто иллюстрирую, что вам нужно найти условия членства в строке таблицы (предикаты (характеристика) * ) и соответствующие базовые таблицы, необходимые и достаточные для описания ваших бизнес-ситуаций, и что выбор имеет последствия.
Время читать учебник по информационному моделированию, реляционной модели и дизайну базы данных.(Примечание: руководство по инструменту проектирования, API или языку для записи дизайнов не является руководством / руководством по дизайну.)