データモデリング
- データと情報
- エンティティとリレーションシップ
- リソースエンティティとイベントエンティティ
- リレーションシップと多重度(カージナリティ)
- PK と AK と FK
//= require bootbox.min |
基礎知識
読み物系
みなさまRubyKaigiお疲れ様でしたー。素敵なKaigiに再会できてうれしかったです。 | |
RubyKaigiまわりで、同じ分野の問題提起が二つありましたねぇ。 | |
一つはKaigi中での、「台湾の女の子はKawaii、だからRubyKaigi Taiwanに来るべき」という発言、 | |
それを笑いで迎えた場内に対して、女性への配慮が足りないだろうという意見。 | |
https://gist.github.com/kyanny/5694201 | |
もう一つは、続くRubyHirobaでの、ポルノに関しての情報処理技術についてのLTがあったこと。 | |
(そして、実際にそれを聞いて傷ついた女性が存在し、問題が提起されました) | |
RubyhirobaはRubyKaigiとは独立した、せっかく東京にRubyistがたくさん居るんだから交流しよう!という、 | |
LTとWorkshopと交流の場を提供するイベントです。 |
(実施告知の文章から抜粋)
ええと、みなさんAWS移行の準備も大詰めでリハですね。リハーサルってなぜやるかわかってる人もわかっていない人もいると思うので書いておきます。結論を先に書くと、本番当日もそのまま手順を踏襲するとそれで移行が終わる詳細な手順が書かれた移行手順書を書いてリハをしてください。リハの中で手順どおりには行かなかったところはその時にすべて手順書に反映して、本番のときは手順どおりでやれるようにしてください。
本番一発勝負というのは難しいもので、人間どんなに考えていても失敗します。でも失敗を糧に二度目をすると一度目にやった失敗は回避できます (できるようにします)。システム開発というのは一般的に大体予測不能なところで失敗するものなので、一度本番同様に動かしてみるというのが非常に重要になってます (アジャイルが繰り返し開発するのも動くソフトウェアを信じるからですね)。
性質として事実上そういうものなのですが、私達の気持ちとしては当然失敗はしたくありません。そこで、失敗をするはずの一度目としてリハーサルという疑似本番をやるわけです。そうすることで、失敗の予行演習ができます。本番に向けて失敗の予防ができます。ここを人手でやると再現性が落ちるのでベストは自動化され、何度やっても繰り返し同じことが実現できる状態です。でも、それはしやすいものとむずかしいものもあるので人間がそのとおりに実行をしたら同じ結果になるという手順書というのが大事になってきます。
CREATE TEMP FUNCTION safe_check(queens ARRAY<STRUCT<x INT64, y INT64>>) RETURNS BOOLEAN AS (( | |
SELECT COUNT(x) = COUNT(DISTINCT x) AND | |
COUNT(y) = COUNT(DISTINCT y) AND | |
COUNT(x+y) = COUNT(DISTINCT x+y) AND | |
COUNT(x-y) = COUNT(DISTINCT x-y) | |
FROM UNNEST(queens) | |
)); | |
CREATE TEMP FUNCTION print_queen(x INT64) RETURNS STRING AS ( | |
(SELECT COALESCE(STRING_AGG('.', ''), '') FROM UNNEST(GENERATE_ARRAY(1, x-1))) || |