Sql 实际上,我已经做了一个“简单”的解决办法,即我只有一个表项,其中PK是项id和修饰语的组合,例如“I:1::3:1:2:3”-这意味着项id=1,3个修饰语,即1,2,3。我总是对修饰符进行排序,使它们总是按升序排列,虽然这个解决方案违反了经典-总是有数字

Sql 实际上,我已经做了一个“简单”的解决办法,即我只有一个表项,其中PK是项id和修饰语的组合,例如“I:1::3:1:2:3”-这意味着项id=1,3个修饰语,即1,2,3。我总是对修饰符进行排序,使它们总是按升序排列,虽然这个解决方案违反了经典-总是有数字,sql,database-design,Sql,Database Design,实际上,我已经做了一个“简单”的解决办法,即我只有一个表项,其中PK是项id和修饰语的组合,例如“I:1::3:1:2:3”-这意味着项id=1,3个修饰语,即1,2,3。我总是对修饰符进行排序,使它们总是按升序排列,虽然这个解决方案违反了经典-总是有数字PK,但它确实适用于我的用例@JayI实际上做了一个“简单”的变通方法——即,我只有1个表项,其中PK是项id和修饰符的组合——例如“I:1::3:1:2:3”——这意味着项id=1,3个修饰符,即1,2,3。我总是对修饰符进行排序,使它们总是


实际上,我已经做了一个“简单”的解决办法,即我只有一个表
,其中PK是
项id
和修饰语的组合,例如“I:1::3:1:2:3”-这意味着
项id=1
,3个修饰语,即
1,2,3
。我总是对修饰符进行排序,使它们总是按升序排列,虽然这个解决方案违反了经典-总是有数字PK,但它确实适用于我的用例@JayI实际上做了一个“简单”的变通方法——即,我只有1个表
,其中PK是
项id
和修饰符的组合——例如“I:1::3:1:2:3”——这意味着
项id=1
,3个修饰符,即
1,2,3
。我总是对修饰符进行排序,使它们总是按升序排列,虽然这个解决方案违反了经典-总是有数字PK,但它确实适用于我的用例@杰伊
    {['item_id': 1, ... 'price': 123, ...],
     ['item_id': 1, ... 'price': 124, ... modifiers: [1, 2, 3],
     ['item_id': 1, ... 'price': 125, ... modifiers: [100, 150, 500...],
     ['item_id': 2, ... 'price': 200, ...],
    ...}
base_item:
 id

modifier: 
 id

item:
 id (autonumber)
 base_item_id

item_modifications:
 item_id (FK item.id)
 modification_id (FK modifier.id)

item_price_history:
 item_id (FK item.id)
 price
 time
for a in auctions:
    base_item_id = a['item_id']
    modifiers = a['modifiers']
    price = a['price']

    actual_item_id = some_query(base_item_id, modifiers) #expensive. Can be avoided?
    insert_into_histogram(auctual_item_id, price) #expensive but necessary I think