首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拉威尔关系“无模型”

拉威尔关系“无模型”
EN

Stack Overflow用户
提问于 2019-03-06 22:08:00
回答 1查看 310关注 0票数 1

简短的解释

我有包含库存货架数据的条形码。我有多个架子,不想为每个架子的位置和级别创建自己的数据库记录。取而代之的是,我有关于每个架子包含的位置(又称列)和级别(又称行)的记录。

是否可以通过条形码搜索来解析并返回这种自定义模型?

更详细的解释

我在每个货架上都有可扫描的条形码。条形码包含有关货架、位置和级别的数据。

在数据库中,我有一个模型货架,它有整数属性"places“和"levels”。

在下面的例子中,我有3个架子。货架A是最大的货架,每4层有8个储物位置。架子B有点小,架子C是最小的,只有两个位置和一个关卡。

代码语言:javascript
复制
| Id | Name | Places | Levels |   
|----|------|--------|--------|
| 1  | A    | 8      | 4      |
| 2  | B    | 5      | 4      |
| 3  | C    | 2      | 1      |

另一个模型包属于那些带枢轴的货架。套餐可以放在货架A、place 1和level 2。

代码语言:javascript
复制
{
    id: 1,
    shelf_id: 1,
    receiver_id: 123,
    pivot: {
        place: 1,
        level: 2
    },

    id: 2,
    shelf_id: 1,
    receiver_id: 567,
    pivot: {
        place: 1,
        level: 2
    },

}

现在,当我使用条形码数据"A-1- 2“(条形码数据:SHELF-AREA-LEVEL)进行搜索时,我会得到ids为1和2的包。

代码语言:javascript
复制
{
    id: 1,
    name: 'A',
    place: 1,
    level: 2,
    packages: [
        {
            id: 1,
            receiver_id: 123,
        },
        {
            id: 2,
            receiver_id: 456,
        }
    ]
}

这是可能的,还是为每个地方做一条记录更好?

EN

回答 1

Stack Overflow用户

发布于 2019-03-06 22:26:02

我认为这取决于你对软件有什么进一步的要求。在我看来,你可以在一个架子上的一个地方有多个包。如果在Shelf模型中存储位置和标高的数量,则假定该工具架中的所有标高和位置共享相同的属性(例如,高度、宽度等)。如果确实是这样,我认为您可以使用您提出的模型。

但是您现在将包的位置存储在枢轴中-只有当您希望同一包和货架有多个条目时,这才有意义,例如,如果您将包移动到另一个货架,而您想保留旧信息。如果您不需要“位置历史记录”,您可以将关卡和位置放在Package模型中,而不是放在轴心中。

如果你想实现完整的“关系型MySQL风格”,我会为每个属性创建不同的模型。Package应该位于Place中,Place位于Level中,Level属于Shelf,其结构如下

代码语言:javascript
复制
Shelf (id, name)
Level (id, shelf_id)
Place (id, level_id)
Package (id, place_id)

这样,您就可以存储每个级别/位置的附加信息。但这取决于您的需求和您的软件应该能够完成的任务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55025033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档