どこかで見たことあったりするスキーマだったりしませんか?!
http://yapcasia.org/2014/talk/show/ce6e777e-fb91-11e3-b7e8-e4a96aeab6a4
-- ゲームの終了条件まで"対戦"を行う、"ゲームプログラミング"をPerlで書く。 | |
-- Battle.pm / Battle::Timelime / Battle::Fighter | |
-- 定時対戦 -> lockを書けないで済むようにする/ 障碍検知、復旧のしやすいポリシー | |
CREATE TABLE battle_timeline ( | |
.. | |
timeline_msgpack BLOB NOT NULL COMMENT '対戦結果データ', | |
) |
-- 「とりあえず、id いれよう」 から covering index | |
-- redisのfallbackの用意 | |
-- LeaderBoard | |
CREATE TABLE xxx_ranking ( | |
user_id INTEGER UNSIGNED NOT NULL, | |
xxx_id INTEGER UNSIGNED NOT NULL, | |
score INTEGER UNSIGNED NOT NULL, | |
PRIMARY KEY (xxx_id, user_id), | |
INDEX (xxx_id, score) | |
) |
どこかで見たことあったりするスキーマだったりしませんか?!
http://yapcasia.org/2014/talk/show/ce6e777e-fb91-11e3-b7e8-e4a96aeab6a4
# relation / id chain / BK | |
my %id2foo = map { $_->id => $_ } @{$db->search(+{ ... })}; | |
my %id2bar = map { $_->id => $_ } @{$db->search(+{ id => [keys %id2foo] }); |
-- lock | |
CREATE TABLE user_status ( | |
user_id INTEGER UNSIGNED NOT NULL, | |
action_pt INTEGER SIGNED NOT NULL COMMENT '行動力', | |
... | |
) | |
UPDATE action_pt = action_pt - 10 |
-- attr_type でのtable振りわけ / BK | |
CREATE TABLE xxx_incentive ( | |
id | |
threshold | |
attr_type ENUM('aaa', 'bbb') NOT NULL, | |
attr_id INTEGER UNSIGNED NOT NULL | |
) |