我应该使用多个mysql数据库表来存储php数组数据吗


Should I use multiple mysql database table to store php array data?

我有一个食品网站,厨师可以在这里从表格中添加他们的产品详细信息。

表单字段名称如下:

  1. 名称
  2. 说明
  3. 价格
  4. 菜单列表(用户可以添加更多)
    a.菜单名称
    b.菜单描述
    (添加更多+)
  5. 数据和时间(用户可以添加更多)
    (添加更多+)

根据这个表格,我使用以下表格结构到mysql数据库:

表名:产品

pid   name      des    price    menuname         menudes         datetime
--------------------------------------------------------------------------
1     chicken   des    3        serialize data   serialize data  serialize data
2     chicken2  des    4        serialize data   serialize data  serialize data
3     chicken3  des    5        serialize data   serialize data  serialize data
4     chicken4  des    6        serialize data   serialize data  serialize data 

因此,您可以看到list of menudata and time字段可以是3、4或更多。因此,我使用php数组从这两个字段中获取值,并对其进行序列化,然后将其保存到数据库中。

我的问题是:

1) 对于list of menudata and time字段,我应该使用另一个2表吗?如果是,为什么
2) 或者,我应该使用php序列化数据来存储这两个字段的值,就像我目前正在做的那样
3) 如果我使用另一个2表来存储这2个字段的数据,我该如何更新值?

例如:在下表中,您可以看到pid 1有2个日期-时间值。因此,要更新2中的任何一个值,我是否需要删除这2个日期时间并再次保存日期时间?

日期表:

id    pid    dat3_time
----------------------
1     1      1201245772    
2     1      1201245772
3     2      1201245772
4     2      1201245772
5     3      1201245772

1.-是的,出于可扩展性的原因,为了保持结构的一致性,您应该存储与菜单相关的所有产品

2.-这是可能的,但你将无法按产品搜索,并且你将难以更新或删除与菜单相关的元素。

3.-这是SQL的基础知识,我建议您阅读有关联接和更新的内容。一个简单而不起作用的例子是。

UPDATE products_time SET available_time = $newtime 
JOIN products ON products.id = products_time.productId
WHERE product.id = $productId