gpt4 book ai didi

sql - 数据库设计 : Transactional design approach

转载 作者:搜寻专家 更新时间:2023-10-30 19:43:57 24 4
gpt4 key购买 nike

我有一个基本但非常重要的事务数据库设计问题。我正在设计一个模拟四个真实世界实体的事务数据库。这些实体中的每一个都具有所有者属性。当用户创建一个实体时,他们将指定该实体的所有者是谁。然后,此所有者可以在以后更改。虽然从理论上讲,根据现实世界的情况,每个所有者可能会有所不同,但我预计同一个人拥有许多实体的少数所有者。

在当前设计中,所有者存储在基本所有者表中,4 个实体中的每一个都连接到同一个所有者表,所有者 ID 是实体表中的外键。所有者表是基本的;它是OwnerID和Name,其中OwnerID是PK,OwnerID是每个实体表中的FK。

我有一种偷偷摸摸的感觉,这对于事务型数据库来说是错误的方法,我采用的方法就好像我在设计一个报告数据库(星型模式),所有者是这些实体的一个维度。在当前的设计中,实体似乎属于所有者,而不是相反。

另一种方法是,我要么将所有者存储在每个实体表上,要么为每个实体创建所有者特定表,即表 EntityOne,然后连接到 EntityOneOwner,其中 EntityID 是 EntityOneOwner 表中的 FK。

希望我说得有道理。想法?

最佳答案

实际上,这是 OLTP 数据库的正确方法 - 听起来像是一个很好的规范化数据库。

报告数据库(例如 OLAP)将被非规范化,所有者名称在不同的表中重复,以便于查询。

关于sql - 数据库设计 : Transactional design approach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10139806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com