web2py определяет таблицы БД и требует - изменить таблицу? - PullRequest
1 голос
/ 25 июня 2010

Я пытаюсь использовать устаревшую базу данных sqlite в web2py.Я не могу изменить схему, так как БД в настоящее время используется парой других приложений.

Моя проблема заключается в том, что для таблиц БД требуется, чтобы они выглядели так: TableC требует TableB, TableB требует TableA, TableA требует Table C.

Итак, конечно, я получаю сообщение об ошибке, когда требуемая таблица еще не определена.Я подумал, что сначала попробую определить часть TableC, а затем добавить другие столбцы, изменив таблицу позже в db.py.Будет ли это работать?Если да, то как мне изменить таблицу в коде db.py?

У кого-нибудь есть другие идеи, которые могут сработать?

1 Ответ

0 голосов
/ 25 июня 2010

Из википедии (http://en.wikipedia.org/wiki/Circular_reference) "Большинство реляционных баз данных, таких как Oracle и SQL Server, не допускают циклические ссылки, потому что всегда существует проблема при удалении строки из таблицы, имеющей зависимости, в другую строку из другой таблицы (сторонняя) ключ), который относится к удаляемой строке. "

Web2py не разрешает циклические ссылки - на уровне базы данных - по той же причине (он допускает самостоятельные ссылки). Обычно, если вы пытаетесь использовать циклическую ссылку, вам нужно вместо этого использовать отношение «многие ко многим» через таблицу ссылок.

Так или иначе. Есть обходной путь. Сделайте последнее контрольное поле и целое число и установите ссылку на уровне web2py (IS_IN_DB), а не на уровне базы данных.

...