Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 有一个或属于多个?_Database_Theory - Fatal编程技术网

Database 有一个或属于多个?

Database 有一个或属于多个?,database,theory,Database,Theory,看来我的大脑有些僵硬,我的头脑还没有完全清醒过来 我正在编写一个大篷车租赁/预订系统。我有一张有很多大篷车的桌子。我还有一张预定的桌子。所以我知道旅行队和预订之间是1:n的关系 因此,现在我需要介绍一些活动(比如在某个特定的时间内展示的节目)以及活动中大篷车的定价。 这是我无法改变想法的地方。我有一些独特的、不重叠的活动——每年大约40个。每辆大篷车的价格是根据活动而定的 如果我只看pricingevent,我是否有1:1的关系?嗯,不是真的,因为当我带大篷车进来的时候,我可以在不同的大篷车上有

看来我的大脑有些僵硬,我的头脑还没有完全清醒过来

我正在编写一个大篷车租赁/预订系统。我有一张有很多大篷车的桌子。我还有一张预定的桌子。所以我知道旅行队和预订之间是1:n的关系

因此,现在我需要介绍一些活动(比如在某个特定的时间内展示的节目)以及活动中大篷车的定价。 这是我无法改变想法的地方。我有一些独特的、不重叠的活动——每年大约40个。每辆大篷车的价格是根据活动而定的

如果我只看pricingevent,我是否有1:1的关系?嗯,不是真的,因为当我带大篷车进来的时候,我可以在不同的大篷车上有多个活动的价格

pricingcaravan也是如此,如果我没弄错的话,正好相反

我收集到的是商队事件形成了一种M:N关系。这是现实世界的表现,从这个意义上说,这种组合是可预订的。为了表示这个M:N关系,您需要引入另一个链接表,将其分解为两个1:N和N:1关系。我从中学到的是,在我的案例中,价格是关系商队的财产:事件

我怀疑将这个链接表称为“价格”是有误导性的,但从技术上讲,这代表了可以支付的项目,价格只是一个属性

这也是后来的想法,Caravan:Event的组合提供了日期范围(从事件开始),然后可以创建指向Caravan的预订记录


没有更多的谜题。

您感到困惑,因为您不清楚数据的真实关系。明确这些,数据库关系就会变得清晰。每个事件都有一个定价,一个定价属于一个事件。商队的价格也一样。但是再看看PricingeEvent,这是一个1:1的关系,当我从车队的角度来看它时,这是否会使它变成一个1:n的关系?我的答案是肯定的,因为每一个活动每一个商队都有多个价格。或者换句话说,每个商队活动都有多个价格,因为每个商队都有多个价格(但不同的活动)。听起来价格也是一个实体。除非它仅仅是一个商业规则。是的,价格是一个实体。你可能需要在定价和商队之间建立一个链接表。