我有一个用于存储产品的表,并且在同一表中存储了我希望产品位于的类别的ID。
我的产品表如下:
type Thing =
...
getThings : String -> Task Never (List Thing)
getThings url =
...
type alias Model =
{ things : Maybe (List Thing) }
type Msg
= GotThings (List Thing)
init =
( { things = Nothing }
, Cmd.batch
[ Task.perform GotThings (getThings "https://a-server.com/things")
, Task.perform GotThings (getThings "https://a-different-server.com/things")
]
)
update msg model =
case msg of
GotThings things ->
case model.things of
Nothing ->
( { things = Just things }, Cmd.none )
Just _ ->
-- if we have already received the things, ignore any subsequent requests
( model, Cmd.none )
view model =
...
然后我有我的类别表:
id | product_name | category_id | price
我的问题是知道如何在我的category_id中插入多个类别,如果可能的话。
如果没有,我能做到的最好方法是什么?
答案 0 :(得分:3)
可能,但是您真的不想去那里。在99.99999%的情况下,在一个datarow列中存储多个值是一个糟糕的主意。
有关更多信息,请阅读Is storing a delimited list in a database column really that bad?,在那里您将看到很多答案,为什么这个问题的答案是绝对是!
您要做的是添加另一个表来存储产品和类别之间的关系。这被称为多对多关系。
此新表应在一个列中包含产品ID,在另一列中包含类别ID,并具有一个复合主键,该主键是这两个列的组合。
这样,您可以在同一类别中拥有许多产品,并且同一产品可以具有许多类别。
答案 1 :(得分:0)
您需要一个many to many
关系,这意味着您需要一个名为ProductCategories
的第三张表,在这种情况下,您将拥有
产品
id | product_name | category_id | price
类别
id | category
产品类别
PruductID | CategoryID (combined PK)