我有条形码,其中包含有关库存货架的数据。我有多个架子,并且不想为每个架子位置和级别创建自己的数据库记录。取而代之的是,我有关于每个架子包含多少个位置(又称列)和级别(又称行)的记录。
是否可以通过使用条形码搜索来解析并返回这种自定义模型?
我在每个库存货架上都有可扫描的条形码。条形码包含有关架子,位置和水平的数据。
在数据库中,我有模型架,该架具有整数属性“位置”和“级别”。
在以下示例中,我有3个货架。货架A是最大的货架,每4层有8个储物空间。架子B小一点,架子C最小,只有2个地方,只有一层。
| Id | Name | Places | Levels |
|----|------|--------|--------|
| 1 | A | 8 | 4 |
| 2 | B | 5 | 4 |
| 3 | C | 2 | 1 |
另一个型号Package属于那些带有支点的货架。包裹可以放在架子A的1层和2层。
{
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
)时,我会得到ID为1和2的包裹。
{
id: 1,
name: 'A',
place: 1,
level: 2,
packages: [
{
id: 1,
receiver_id: 123,
},
{
id: 2,
receiver_id: 456,
}
]
}
这可能吗,还是每个地方做一个记录更好?
答案 0 :(得分:0)
我认为这取决于您对该软件有什么进一步的要求。据我所知,您可以在一个架子的某个位置放置多个包装。
如果您在Shelf
模型中存储位置和级别的数量,则假定该架子中的所有级别和位置都共享相同的属性(例如,高度,宽度等)。
如果确实如此,我认为您可以采用建议的模型。
但是您现在将包裹的位置存储在枢轴中-仅当您想为同一包裹和架子有多个条目时才有意义,例如如果您将包裹移到另一个架子上并希望保留旧信息。如果不需要“位置记录”,则可以将级别和位置放在Package
模型中,而不是放在透视图中。
如果要使用完整的“关系MySQL样式”,我将为每个属性创建不同的模型。 Package
应该在Place
中,Place
位于Level
内,而Level
属于Shelf
,为您提供以下内容结构
Shelf (id, name)
Level (id, shelf_id)
Place (id, level_id)
Package (id, place_id)
这样,您可以存储每个级别/位置的其他信息。但这取决于您的要求以及您的软件应该能够完成的工作。