小编Rus*_*925的帖子

最好使用整数键的dict还是很长的列表?

基本上,我需要创建一个包含非连续整数ID的查找表.我想知道,就查找速度而言,dict无论如何我通常更好地使用带有整数键,或者使用很长的list带有很多空索引.在我看来,list可能仍然会更快,因为Python应该确切地知道在哪里看,但我想知道是否有任何后端进程dict要补偿以及这些空list插槽的额外内存要求是否会否定(可能) )更容易穿越list速度增益.有没有替代lists和dicts可能更适合这个?

我已经看到了这个问题,但它并没有完全回答我的:字典访问速度与字符串键的整数键比较

ETA:我在我的程序中实现了两次这样的查找表.一个实例看到最大id为5,000,其中填充了70-100个对象; 另一个的最大ID为750,其中20-30填充.

python python-2.7

9
推荐指数
1
解决办法
2922
查看次数

复合键的每组行的序列号

我正在尝试维护一个地址历史表:

CREATE TABLE address_history (
    person_id int, 
    sequence int,
    timestamp datetime default current_timestamp,
    address text,
    original_address text,
    previous_address text,
    PRIMARY KEY(person_id, sequence),
    FOREIGN KEY(person_id) REFERENCES people.id
);
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种简单的方法可以自动编号/约束sequence,address_history从而自动从1开始计数person_id.

换句话说,第一行person_id = 1会得到sequence = 1; person_id = 1会得到第二排sequence = 2.第一行person_id = 2,将sequence = 1再次获得.等等.
还有更好/内置的方式来维护这样的历史吗?

sql postgresql database-design auto-increment

7
推荐指数
1
解决办法
1913
查看次数