我有一个食物网站,厨师可以从表格中添加他们的产品详细信息。
表单字段名称如下:
根据这个表单,我使用以下表结构到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 menu
和data and time
字段可以是3,4或更多。所以,我使用php数组从这两个字段获取值并序列化然后将其保存到数据库。
我的问题是:
1)我应该为list of menu
和data and time
字段使用另外两个表吗?如果是这样,为什么?
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
答案 0 :(得分:1)
1.-是的,您应该出于可扩展性的原因并保持结构一致,您应该存储与菜单相关的所有产品
2.-这是一种可能性,但您无法按产品进行搜索,也无法更新或删除与菜单相关的元素。
3.-这是SQL的基础知识,我建议你阅读有关连接和更新的内容。 一个简单且不起作用的例子就是。
UPDATE products_time SET available_time = $newtime
JOIN products ON products.id = products_time.productId
WHERE product.id = $productId