Я не очень хорошо разбираюсь в базах данных, так что извините, если я не очень хорошо это описываю ...
У меня есть база данных Oracle, которая описывает каталог алгоритмов.Есть две таблицы алгоритмов и xref_alg.
Алгоритмы могут иметь алгоритмы для родителей и детей.Alg_Xref содержит эти отношения с двумя внешними ключами - xref_alg и xref_parent.
Это модели Django, которые у меня так далеко от команды inspectdb
class Algorithms(models.Model):
alg_id = models.AutoField(primary_key=True)
alg_name = models.CharField(max_length=100, blank=True)
alg_description = models.CharField(max_length=1000, blank=True)
alg_tags = models.CharField(max_length=100, blank=True)
alg_status = models.CharField(max_length=1, blank=True)
...
class Meta:
db_table = u'algorithms'
class AlgXref(models.Model):
xref_alg = models.ForeignKey(Algorithms, related_name='algxref_alg' ,null=True, blank=True)
xref_parent = models.ForeignKey(Algorithms, related_name='algxref_parent', null=True, blank=True)
class Meta:
db_table = u'alg_xref'
При попытке запросить AlgXref я сталкиваюсь с этим:
DatabaseError: ORA-00904: "ALG_XREF"."ID": invalid identifier
Так что, похоже, ошибка в том, что он ищет идентификатор первичного ключа, которого нет в таблице ... Я мог бы создать его, но он кажется немного бессмысленным.Есть ли способ обойти это?Или поменять мои модели?
РЕДАКТИРОВАТЬ: Таким образом, после небольшого поиска кажется, что Django требует модель, чтобы иметь первичный ключ.Жизнь слишком коротка, поэтому только что добавили первичный ключ.Повлияет ли это на производительность?