PRIMARY KEY关键字如何与SQL Server中的聚簇索引相关联?
(有些人似乎想回答这个问题而不是我问的另一个问题,所以我给他们一个更好的地方去做.)
sql-server performance primary-key physical-design clustered-index
我想知道我是否可以将人类可读的主键用于相对较少数量的数据库对象,这将描述大都市区域.
例如,使用"washington_dc"作为华盛顿特区都市区的pk,或纽约市的"nyc".
吨对象将国外键入这些城域网对象,我希望能够告诉当一个人或企业只是通过看他们的数据库记录位置.
我只是担心,因为我的直觉告诉我这可能是违反良好做法的严重犯罪.
那么,我"允许"做这种事吗?
谢谢!
我有一个数据库表,其中主键被定义为时间戳.应用程序根据触发的特定事件将记录插入数据库,并且使用的时间戳将是创建此实例的时间戳.由于此应用程序在多个服务器上运行,并且该事件同时在多个服务器中同时触发,因此在某些情况下,由于主键冲突,数据不会插入到数据库中.
为了避免这种情况,我可以改变什么?我现在的想法是,
在执行数据库插入之前等待一段随机时间.
Random r = new Random();
long time = r.nextLong() % 1000;
time = time < 0 ? -time : time; // making sure that the waiting time is positive
try {
Thread.sleep(time);
} catch (InterruptedException e) {
throw new CustomeException(e);
}
Table1DataAccess.getInstance().insert(new Date(), "some description"); // inserting data into the table which has two fields.
Run Code Online (Sandbox Code Playgroud)使主键成为复合键.
对我来说,它们都不是好的解决方案,有人能指出我正确的方向吗?
PS我尝试插入数据的表在Date
类型中有timestamp列,我猜它只有几秒的精度.当我使用该类型时timestamp
,它提供了默认的微秒精度,它最多可以提供纳秒.