我有一个基本但非常重要的事务数据库设计问题。我正在设计一个模拟四个真实世界实体的事务数据库。这些实体中的每一个都有一个 Owner 属性。当用户创建实体时,他们将指定该实体的所有者是谁。然后,此所有者可以在以后更改。虽然理论上每个所有者可能会根据现实世界的场景而有所不同,但我希望少数所有者拥有许多实体的同一个人。
在当前设计中,所有者存储在一个基本的所有者表中,并且 4 个实体中的每一个都连接到同一个所有者表中,所有者 ID 是实体表中的 FK。所有者表是基本的;它是 OwnerID 和 Name,其中 OwnerID 是 PK,而 OwnerID 是每个实体表中的 FK。
我有一种鬼鬼祟祟的感觉,这对于事务数据库来说是错误的方法,我正在采用的方法就像我正在设计一个报告数据库(星型模式),而所有者是这些实体的一个维度。在当前的设计中,看起来实体属于所有者,而不是相反。
另一种方法是,我要么将所有者存储在每个实体表上,要么为每个实体创建所有者特定的表,即表 EntityOne,然后连接到 EntityOneOwner,其中 EntityID 是 EntityOneOwner 表中的 FK。
希望我在这里有意义。想法?