Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2019
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* -*- coding: utf-8 -*- */
  2.  
  3. --
  4. -- 商品と価格
  5. --
  6.  
  7. -- 商品
  8. create table sales_items (
  9.   id           serial        primary key
  10. , name         varchar(255)  not null unique
  11. );
  12.  
  13. -- 価格
  14. create table sales_prices (
  15.   item_id      integer    not null references sales_items(id)
  16. , start_date   date       not null
  17. , price        integer    not null
  18. , primary key (item_id, start_date)
  19. );
  20.  
  21.  
  22. --
  23. -- ダミーデータを作成
  24. --
  25.  
  26. /*
  27. \set n_products    20000
  28. \set n_months      100
  29. \set ratio         0.1
  30. */
  31.  
  32. -- ダミーの商品
  33. insert into sales_items (name)
  34. select 'sales item #'||t.i
  35. from generate_series(1, 20000) as t(i);
  36.  
  37. -- 価格テーブルにすべての商品をダミー価格で登録
  38. insert into sales_prices (item_id, start_date, price)
  39. select t.i, '2000-01-01', random() * 1000 + 1000
  40. from generate_series(1, 20000) as t(i);
  41.  
  42. -- 複数のダミー価格を登録
  43. with months(date) as (
  44.     select ('2000-01-01'::date + (t.i||'month')::interval)::date
  45.     from generate_series(1, 100 - 1) as t(i)
  46. )
  47. insert into sales_prices(item_id, start_date, price)
  48. select p.id, m.date, random() * random() * 1000 + 1000
  49. from sales_items p cross join months m
  50. where random() < 0.1;
  51.  
  52.  
  53. /*
  54. drop table sales_prices;
  55. drop table sales_items;
  56. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement