我想做一个简单的独特的IP计数器的画廊页面视图。
我的想法是将视图记录与2个表中的图像记录分开。
保存图像:id
,name
,类别
,视图
列
为查看的图像保存访问者ip
此示例屏幕截图显示了3名访问者,每人查看3张图像。我使用免费代理IP。
如果检测到New IP:
将名称
1。
→ <代码>视图ip
添加到唯一的\u ip
增量gallery
→ <代码>名称
$name = "Image 1";
$ip = getenv('REMOTE_ADDR');
// Increment Views if New IP visitor
// Proceed if name + ip record does not exist in table
if (!DB::table('unique_ips')->where('name', '=', $name)->where('ip', '=', $ip)->exists()) {
// Add Name/IP Record
DB::table('unique_ips')->insert([
['name' => $name, 'ip' => $ip]
]);
// Views +1
DB::table('gallery')
->where('name', $name)
->increment('views', 1);
}
这个视图计数器可以工作,但是所有唯一的ip记录都被分组在2列下。它必须搜索所有记录才能找到匹配的,这可能会随着数千个ip的出现而变慢。
其他想法
>
每个name
都可以有自己的包含ip的列。但那样我就会有成千上万的专栏。
我可以将ip存储在name
文本文件中,而不是数据库中。
有更好的设计方法吗?
问题内容: 这个问题需要一些假设的背景。让我们考虑一个有列的表,,,,使用MySQL作为RDBMS。由于如果给定的某个人的名字和出生日期与另一个人相同,那么根据定义,他们就是同一个人(除非有两个巧合,即我们两个人分别于1809年2月12日出生,他们叫亚伯拉罕·林肯),所以我们将上的唯一键,这意味着“不要将同一个人存储两次”。现在考虑以下数据: 如果现在尝试运行以下语句,则该语句应该并且将失败: 如
问题内容: 我有一个这样的表结构: 通过智能查询,我想获取3列: 我在的此解决方案的帮助下提出了我的查询,该查询为我提供了我需要的前两列: 但是,如何将第三列也添加到查询中? 你能帮我么? 问题答案: 正如您自己提到的那样,您可以使用关键字来获取与众不同的。使用获得的计数和获得不同的每个小号 试试这个: 输出:
问题内容: 追溯(最近一次呼叫最近):… AttributeError:“索引”对象没有属性“索引” 如何获得一个数据透视表,其中包含一个DataFrame列与其他两个列 的唯一值 的 计数 ? 是否有独特的计数?我应该使用吗? 注意 我知道“系列”,但是我需要一个数据透视表。 编辑:输出应为: 问题答案: 你的意思是这样吗? 请注意,使用假设您的DataFrame中没有。您可以做,否则可以。
问题内容: 我对数据库表中的唯一行有问题,现在可以这样做: 当我在所有列中使用UNIQUE属性时,即使第二个Moore名称不同,我也会插入第二个Moore错误:/ 如何使用UNIQUE(或INDEX?)在db表中执行类似的操作: 抱歉,如果问题很简单,但是我是sql的初学者,并且在使用UNIQUE之类的UNIQUE时找到一些好的示例时遇到问题:/或者也许我必须在插入新行之前从db中选择一个表并检查
问题内容: 我有一个laravel 模型,该模型在和上具有唯一的验证规则。在我的存储库中,当我更新模型时,我将重新验证字段,以使所需的规则验证没有问题: 测试失败 有没有办法优雅地解决这个问题? 问题答案: 将当前正在更新的实例的追加到验证器。 传递实例的来忽略唯一的验证器。 在验证器中,使用参数来检测您是否正在 更新 或 创建 资源。 如果进行更新,则强制唯一规则忽略给定的id: 如果创建,请照
问题内容: 我有一个具有许多行的mysql表,并且在每一行中都有一个称为“值”的字段,该字段的值在行与行之间会有所不同。我想要的是选择所有行并计算所有“值”字段的总和。 任何的想法? 问题答案: 你是这个意思吗 如果您有多个要返回的列,只需将每个非聚合(即求和)行添加到子句中: