gpt4 book ai didi

mysql - 具有多个多对多约束的库存数据库设计?

转载 作者:行者123 更新时间:2023-11-29 17:01:07 26 4
gpt4 key购买 nike

我正在尝试为一个简单的库存程序设计一个数据库架构。

此库存将由盒子中的元素组成。盒子里装着元素,而且它们本身就是元素。

我想 box 将是 item 的父类(super class)型。

我的主要难题是如何构建/约束框之间的关系,以便我仍然可以约束一个项目一次只能位于一个“位置”的独特条件。

我知道多对多关系应该让我知道哪些元素位于哪些盒子中,但是其他盒子中的盒子又如何呢?

例如:
Box A 包含Item BBox CBox C 包含Item D

我怎样才能设计一个系统,当我寻找Item D时,我会在Box ABox C中找到它(真的很棒如果我还可以知道盒子之间的关系——后者在前者内部)。

最佳答案

您可以使用与表本身的自关系。您可以在数据库设计中提及以下提到的列:

ItemId(PK)
ItemName
ItemType(Can be B for Box and I for item)
ItemContainer(Will contain ItemId from this table itself and will be null if it is not present in any box, if required add check constraint that if itemType is I then it cannot be null)

您可以将数据放置为:

ItemId      ItemName      ItemType     ItemContainer
1 BoxA B (null)
2 BoxB B 1
3 ItemA I 2

由于 ItemId 是主键,因此数据库只允许每个项目一行,因此它只能在一个框中可用。

检查此设计是否有帮助...

关于mysql - 具有多个多对多约束的库存数据库设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52250286/

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