我有一个活动源模块,我在其中存储在具有多个成员的公司中发生的活动。这些活动通常根据用户的角色特定于用户。所以我想将应该显示活动的用户存储在表列中,这样在获取活动时我不必查询与该活动相关联的用户,这会降低数据检索过程的速度。
因为MySQL没有数组数据类型,这是最好的方法吗?
现在我有
activities(id, category, action, date)
activity_users(id, activity_id, user_id)
是否更容易查询基于添加列users
和故事数组[1,3,5,8]
的特定用户类型的活动,并尝试从activities
查询该活动表
答案 0 :(得分:2)
是的,您可以使用serialize()/ unserialize()但是您无法在该字段上触发查询,如果需要该序列化数据中的任何特定内容(您必须获取所有内容,反序列化然后才能执行搜索)或者您可以以逗号分隔保存数据(您可以对其执行任何查询)或者您可以为每个数据获取分隔字段
答案 1 :(得分:0)
如果<?php
中的代码可以使用json_encode()
/ json_decode()
,serialize()
/ unserialize()
并正常写入字符串。但是选择这种数据很难建立正确的条件。如果你需要找到使用%LIKE%
的东西 - 并不总是有帮助。我建议你为每种数据创建单独的字段。