我需要为uniqueID我的网站的每个访问者生成一个唯一的标识符().哪种算法更适合用于此?有什么想法吗?
更新:小条件:不使用会话ID.
可能重复:
在Haskell中创建唯一标签
我有一个数据类型Person和一些输入数据,我将从中创建人员.
我想让每个人都有自己的ID(假设整数[0 ..]).我可以通过递归来做到这一点,但是因为我在Haskell中这样做,所以我想了解monad.我想,State Monad可能是这项工作的最佳人选.
问题是,我并不是很了解很多东西:当我在monad中时(什么功能可以使用内部),我如何将它们连接在一起,如何使'tick'功能提前等等. .
所以我现在坚持这个:滴答功能可能有效,但我不知道如何使用它; 以及如何相继获得人才建设的价值.
import Control.Monad.State
data Person = Person {
id :: Int,
name :: String
} deriving Show
type MyState = Int
startState = 0
tick :: State MyState Int
tick = do
n <- get
put (n+1)
return n
names = ["Adam","Barney","Charlie"]
-- ??? -> persons = [Person 0 "Adam", Person 1 "Barney", Person 2 "Charlie"]
main = do
print $ evalState tick startState
-- ???
Run Code Online (Sandbox Code Playgroud)
编辑:使用Data.Unique或Data.Unique.Id会更容易吗?如何在我的情况下使用它?
我一直在从事我的项目(我也在使用 EMF Compare)。我需要为我使用的每个对象保留一个唯一的 ID,这就是我决定使用 IdentityHashCode 的原因,据我所知,该值在编译过程中是相同的。
我已将对象作为另一个类的方法中的参数给出,但是当我尝试获取哈希码时,这与打印对象的值时看到的不同。
像这样的东西:
System.out.println("The Object is: "+obj)
System.out.println("The hash ID is: +Integer.toHexString(System.identityHashCode(obj)));
但结果我得到了这个:
对象是:***xxxxxxxxxxxxxx***.EntityImpl@18e588c (name: Comment) has been removed.
哈希 ID 为:1ec1758
正如您所看到的,两个值(18e588c和1ec1758)完全不同,但我不明白为什么。到目前为止,我所做的唯一一件事(并且有效)是获取对象的 String,然后使用 substring 方法来获取18e588c(对于本例)
我将不胜感激任何答案。
IOS newb构建一个与网站合作的应用程序.最终,我希望将应用程序和后端保持在网站上同步.
照片使用项目的ID保存在网站上.对于应用程序,我还想保存带有与项目链接的唯一编号的照片.
在网站上,每个项目的ID只是MYSQL表中的自动递增数字.
我的理解是在Core Data中不可能自动增量,但它确实为每个托管对象创建了唯一的标识符.
在创建项目以供以后检索时,如何将此编号存储并存储在核心数据数据库中?
或者,任何人都发现了一种在核心数据中自动增加的方法,以便提供可用于存储照片的项目编号.对应用程序创建的照片和通过网站创建的照片有一个类似的命名方案会很不错.
我正在寻找一种算法,该算法生成适合于两者的标识符,例如URL中的外部使用以及具有以下要求的持久性:
我查看了各种解决方案,但我发现的所有解决方案都有一些重要的权衡.例如:
编辑:为什么这个被标记为偏离主题?这些要求描述了可以提供许多合法解决方案的特定问题.事实上,这里的一些解决方案非常好,我正在努力选择一个标记作为答案.
我是R编程的新手(我一生都在SAS编程),我认为这是一个我无法找到答案的基本问题(找到了类似问题的答案,但没有找到答案).
想象一下,我们有一个二进制变量(我们称之为"v1"),它的值可以是0或1.我想创建一个新变量(我们称之为"v2"),它取值为每次出现1的新值或在0之后出现1s的字符串时,都会显示一个唯一的集群ID.最后,我想从v1创建"v2",如下所示:
Obs v1 v2
1 0 NA
2 0 NA
3 1 1
4 1 1
5 0 NA
6 1 2
7 0 NA
8 1 3
9 1 3
10 1 3
11 0 NA
12 1 4
Run Code Online (Sandbox Code Playgroud)
如果有人能够对此有所了解,我将非常感激.非常感谢.
我必须生成一个唯一的 ID,该 ID 也是可读的,因此不能使用 UUID。所以我想到了使用Instant.toEpochMilli()。可以用作唯一ID吗?
我想为数据库中的行生成唯一的 ID。我将持续向该数据库添加条目,因此我需要同时生成新的 ID。虽然我的数据库相对较小,并且重复随机 ID 的可能性很小,但我仍然希望构建一个编程式故障安全装置,以确保我永远不会生成过去已使用过的 ID。
对于初学者来说,以下是一些示例数据,我可以使用它们来启动示例数据库:
library(tidyverse)
library(ids)
library(babynames)
database <- data.frame(rid = random_id(5, 5), first_name = sample(babynames$name, 5))
print(database)
rid first_name
1 07282b1da2 Sarit
2 3c2afbb0c3 Aly
3 f1414cd5bf Maedean
4 9a311a145e Teriana
5 688557399a Dreyton
Run Code Online (Sandbox Code Playgroud)
这是一些示例数据,我可以使用它们来表示将附加到现有数据库的新数据:
new_data <- sample(babynames$name, 5)
print(new_data)
first_name
1 Hamzeh
2 Mahmoud
3 Matelyn
4 Camila
5 Renae
Run Code Online (Sandbox Code Playgroud)
现在,我想要的是使用该函数绑定随机生成的 ID 的新列random_id,同时检查以确保新生成的 ID 与对象中的任何现有 ID 不匹配database。如果生成器创建了相同的 ID,那么理想情况下它将生成新的替换,直到创建真正唯一的 ID。
任何帮助将非常感激!
更新
我想到了一种有帮助但仍然有限的可能性。我可以生成新的 ID,然后使用for()循环来测试现有数据库中是否存在任何新生成的 ID。如果是这样,那么我会重新生成一个新的 ID。例如...
new_data$rid <- random_id(nrow(new_data), 5) …Run Code Online (Sandbox Code Playgroud) 我用pyodbc访问我的MSSQL数据库.
当从MSSQL中读取uniqueidentifier字段时,在我的MacOS中,我可以打印出正确的udid字段值(例如4C444660-6003-13CE-CBD5-8478B3C9C984),但是当我在Linux CentOS上运行相同的代码时,我只看到非常奇怪的字符串比如"???????????????????????????????????????????????????????????????
你能解释一下为什么会这样,我怎样才能在linux上获得正确的uidi值?谢谢
我想复制一个sqlserver表行并插入到这个表self中,这个表有这个字段:
Id :uniqueidentifier
ParentId: uniqueidentifier
Name: varchar(50)
Sort: float
UserId: uniqueidentifier
Run Code Online (Sandbox Code Playgroud)
Id和ParentId现有关系.
我提出了一个解决方案:
Insert into table1 (Id, ParentId,Name,Sort)
Select dbo.gen(id,1) as id, dbo.gen(ParentId,1) as ParentId ,Name,Sort from table1
where UserId='XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
Run Code Online (Sandbox Code Playgroud)
gen函数是从给定GUID生成新GUID的方法
follow是一个C#描述,我们可以在CLR SQL Server用户定义函数中使用:
public Guid GenerateNewGuid(Guid from,int seed)
{
return .....
}
Run Code Online (Sandbox Code Playgroud)
请帮我,我该如何实现这个功能?
如果您对我的情况有其他解决方案,请告诉我
问候.
吉姆
我想将两个可能具有不同最大位长的大整数编码为一个整数。第一个整数是有符号的(可以是负数),而第二个是无符号的(总是非负数)。如果位长度分别为m和n,则返回整数的位长度应小于或等于m + n。
只是n(但不是m)是预先已知的,并且是固定的。作为示例,将使用该解决方案将61+位的带符号纳秒时间戳与256位的无符号随机性相结合,以形成带符号的317+位唯一标识符。
我正在使用最新的Python。有一个相关的预先存在的问题,在特殊情况下()m == n解决此问题。
uniqueidentifier ×11
java ×3
c# ×2
guid ×2
python ×2
r ×2
.net ×1
core-data ×1
dplyr ×1
hashcode ×1
haskell ×1
identifier ×1
ids ×1
integer ×1
ios ×1
monads ×1
object ×1
pyodbc ×1
sql ×1
sql-server ×1
state-monad ×1
unique-key ×1