Если у меня две таблицы: A (id, ... некоторые другие столбцы) и B (id, ... некоторые другие столбцы). Мне нужно связать комментарии (другая таблица: id, текст, автор) с объектами A и B.Как построить отношения между разными типами?
Могу ли я сделать что-то вроде создания четвертой таблицы для этой цели: comment_id, table_id (A или B или, возможно, другие), item_id? Я имею в виду какой-то метод sqlalchemy?
Теперь я знаю только эти два решения: http://bpaste.net/show/27149/ - для каждого A и B будет отдельная таблица с комментариями. Я не думаю, что это хорошая идея, потому что эти таблицы (должны быть) идентичны, если я хочу увидеть все комментарии какого-то автора - это будет сложнее, чем другие способы, если когда-нибудь будет таблица C - I необходимо будет создать таблицу для своих комментариев ...
Другое решение - http://bpaste.net/show/27148/. Я думаю, что лучше, но мне все равно придется создавать таблицу ассоциаций для каждой таблицы, в которой мне нужно прокомментировать элементы.
Любые идеи? Заранее спасибо.
Спасибо за усилия! Я думаю, что первый путь будет работать, но это нехорошо, imho: будет слишком много неиспользуемых столбцов для каждого комментария (там будут не только A и B, но и многие другие). Второй вариант, я думаю, но не так хорош, как использование Идентификаторы таблиц и идентификаторы элементов. На самом деле я не уверен, что он реализован в sqlalchemy. – kishkin
@kishkin Я добавил ссылку на подробное обсуждение темы создателем SQLalchemy – mensi
Спасибо, буду читать сейчас. – kishkin