Database 实体关系图-采购在哪里?

Database 实体关系图-采购在哪里?,database,database-design,relational-database,entity-relationship,Database,Database Design,Relational Database,Entity Relationship,考虑到这个社区存在与数据库建模相关的问题,我在这里寻求帮助 我正在开发一个拍卖系统,它是基于我正在读的一本书中看到的另一个拍卖系统,我遇到了麻烦。问题背景如下: 在拍卖系统中,用户发布产品公告(他/她定义产品)。它定义了 产品名称和初始报价(称为初始报价)。初始出价表示要提供的最低金额。A. 产品仅在用户宣布时存在于数据库中。A. 用户定义了多个产品,但一个产品属于一个 用户 每种产品都有一个有效期。当某个日期到来时,如果 该产品没有报价,没有出售。如果有 为产品报价时,出价最高者赢得给定产品

考虑到这个社区存在与数据库建模相关的问题,我在这里寻求帮助

我正在开发一个拍卖系统,它是基于我正在读的一本书中看到的另一个拍卖系统,我遇到了麻烦。问题背景如下:

在拍卖系统中,用户发布产品公告(他/她定义产品)。它定义了 产品名称和初始报价(称为初始报价)。初始出价表示要提供的最低金额。A. 产品仅在用户宣布时存在于数据库中。A. 用户定义了多个产品,但一个产品属于一个 用户

每种产品都有一个有效期。当某个日期到来时,如果 该产品没有报价,没有出售。如果有 为产品报价时,出价最高者赢得给定产品

优惠有创建日期和金额。报价是 从用户处为产品制作。一个用户可以为以下内容提供不同的报价: 不同的产品。一种产品可以由不同的用户提供。这个 同一用户不能为同一产品提供两个以上的报价

这种背景对我来说很容易做到问题是我需要存储购买的物品。(很抱歉,我不知道英文中是否有这个词)。我需要一种方法来知道哪个报价是成功的,并且实际“购买”了一个产品。相对于前面所说的,我的部分概念模型(实体关系图)如下所示:

我尝试用产品聚合用户,并在聚合和产品之间建立连接/关系,这将为我提供购买事件。当这是分解(分解)我会有一个表显示提供购买什么产品

然而,我会有一个基数问题。这个表将有两个外键。一个用于投标,另一个用于产品。这将允许这两者之间存在N-N关系,这意味着我可以作为一个产品的买家保存多个出价,或者同一个出价可以“购买”多个产品(因此我在生成的购买表中这样说)

我在这里没看到什么吗?你们能帮我吗?感谢您的阅读,感谢您的时间和耐心。如果您需要更多的细节,请随时询问

编辑 产品实体上的属性“初始出价”不是关系。
此属性表示货币价值,即报价必须提供给特定产品的最低金额。

您是在倒退。首先确定相关的应用程序关系,然后确定其属性。给定应用程序关系和可能出现的应用程序情况,只能出现某些关系/关联集/表。一次购买只能对每个产品进行一次竞价,并且每次竞价只能对一个产品进行一次竞价。因此,购买的出价:产品基数是1:1,这只是一个事实。说吧。无论您希望记录哪些其他应用程序关系,这都是如此。如果这些实体之间的应用程序关系不同,则基数可能不同。等待——用户、产品和出价正好形成这样一对应用关系,前者的user:product为1:0..N,后者为0..N:0..N。每个参与者的基数反映了菱形所代表的特定应用程序关系(是其属性)


类似地:外键是关系/关联集/表对的属性。声明它们告诉DBMS强制参与者id值出现在实体集/表中。Ie{bid}引用投标和{product}引用产品。候选键(其中一个可以是主键)是关系集/表的属性。正是购买的候选键导致了强制其基数的约束声明。在bid:product上的数量不多,因为“bid-bid在日期以$AMOUNT的价格购买产品”在bid:product上的数量不多。因为它的出价或它的产品唯一地标识了一次购买,{bid}和{product}都是候选键。

你是在倒退。首先确定相关的应用程序关系,然后确定其属性。给定应用程序关系和可能出现的应用程序情况,只能出现某些关系/关联集/表。一次购买只能对每个产品进行一次竞价,并且每次竞价只能对一个产品进行一次竞价。因此,购买的出价:产品基数是1:1,这只是一个事实。说吧。无论您希望记录哪些其他应用程序关系,这都是如此。如果这些实体之间的应用程序关系不同,则基数可能不同。等待——用户、产品和出价正好形成这样一对应用关系,前者的user:product为1:0..N,后者为0..N:0..N。每个参与者的基数反映了菱形所代表的特定应用程序关系(是其属性)


类似地:外键是关系/关联集/表对的属性。声明它们告诉DBMS强制参与者id值出现在实体集/表中。Ie{bid}引用投标和{product}引用产品。候选键(其中一个可以是主键)是关系集/表的属性。正是购买的候选键导致了强制其基数的约束声明。在bid:product上的数量不多,因为“bid-bid在日期以$AMOUNT的价格购买产品”在bid:product上的数量不多。因为它的出价或它的产品唯一地标识一个购买,{bid}和{product}都是候选键。

记录中标需要一个功能依赖项
产品ID->bid ID
。这可以实现为一个或多个