OriginalGriff
Если хотя бы один из столбцов не может содержать нулевые значения, вы не можете вводить данные ни в одну из таблиц без особых проблем: вы можете сделать это, создав постоянную "пустую" запись в обеих таблицах и указав на нее внешний ключ изначально, но это грязное решение.
Но... главный вопрос: "почему?" Это не похоже на "естественную" структуру данных - очень мало в реальном мире, что мы можем смоделировать в базе данных, является "естественно рекурсивным", поэтому вполне возможно, что ваш дизайн данных нуждается в хорошем обзоре, чтобы проверить, что нет лучшей структуры, которую вы можете использовать. Единственный раз, когда я видел такие вещи, - это когда люди делают ошибки и предполагают, что таблице "InvoiceLines" нужен внешний ключ обратно к таблице "Invoices" (что они и делают), а таблице "Invoices" также нужен внешний ключ к таблице "Invoice Lines" (чего они не делают-вы получаете эту ссылку через соединение в ваших операторах SELECT).