我的问题是关于数据库设计及其原则。我正在开发一个将对象映射到数据库表的 Python 应用程序。
我有Projects
和People
对象,映射到它们各自的表。然后我有Messages
, 也映射到它自己的表。
Amessage
可以属于person
(人员表)或project
(项目表)(n-1)。
我的问题:
我是否应该创建两列——
belongs_to_id
和belongs_to_type
——用于消息和查询以获取它们?或者;我应该为每个人创建一个关联表 -- people_have_messages 和项目有消息吗?
在这种情况下,正确的工作方式是什么?
如果选择第一个选项,如何创建 FK 约束和约束?
我的问题是,由于项目和人员(人员表)都可以具有相同的 PK(id),因此不说明表就不足以引用,而且我不知道到底该做什么。
表:
People:
--------------
ID (PK unique)
Name
Projects:
--------------
ID (PK unique)
Title
Description
Message:
--------------
ID (PK unique)
Text