这可能是一个新手数据库问题,但我一直有这个疑问。
为什么我们要分配由 Django 或节点数据库包装器提供的关系,它允许以多对一或一对一的关系连接到数据库模型。为什么我们不能只将数据库 A 的主键存储在数据库 B 中,从而确保数据库 A 与数据库 B 具有一对一的关系?
执行此 DatabaseA.hasOne(Database B) 需要什么,最终实现相同的目标,在数据库 B 中创建一个 databaseAId 列并将数据库 A 的主键 ID 存储在那里。
它们基本相同。
包装器的原因是始终如一地提供以所选语言工作的界面。例如,我在 Rails 上使用 ruby,并且存在相同的范例。包装器允许您以您正在使用的语言编写查询。
这种做法还允许您定义不同的关系,例如 has_many 与 has_one,两者在另一个表中都有一个外键,但只有使用上述关系,您才能知道它是打算成为 has_many 还是 has_one 关系。
描述中的某些术语对我来说似乎含糊不清(什么是 Django?数据库这个词被滥用了吗?)
但是通常在数据库中创建关系通常也可以确保您将在外键列中输入的数据是一致的。(例如,如果记录在外表中不存在,则不能插入外键。)