我有一堆ID。 我可以每天分配一次。
我需要查询我的数据库,看看他们是否有可用的ID(如果我没有在24小时内分发所有这些),如果有任何可用,请写一个新行到数据库说该ID已经分发。我还需要知道哪个用户在某个时间持有哪个ID。
我能想到这一点的唯一方法是创建两个表 - 一个active_ids
(包含拥有特定ID的人现在)和一个id_records
(包含谁拥有当前和过去的ID)。
然后我会说:
UPDATE active_ids SET user_id=xyz WHERE UNIX_TIMESTAMP(current_timestamp) - UNIX_TIMESTAMP(date) > 84600 LIMIT 1;
然后将另一条记录与id_records
一起用于数据。
我有办法用一张桌子吗? 我正在使用PHP和MySQL。
谢谢!
答案 0 :(得分:1)
当然,如果用户ID不是实际的主键,您可以只为所有user_id创建时间戳,然后使用基于时间的查询进行搜索以查看可用的内容。
答案 1 :(得分:0)
您可以拥有DATE
类型的“日期”列和“user_id”列,并使用(day,user_id)
的复合主键。
或者我怀疑可能是一个更好的主意:拥有一个真正唯一的ID,然后将非唯一ID称为“访问代码”,并具有复合唯一约束。