マスターテーブル更新の弊害

RDB(リレーショナルデータベース)は,正規化が基本ですが,正規化することによって,検索や結合が複雑になってしまう場合があります.

次図のような承認書をデータベース化することを考えてみます.

00.承認書

まずは,1つの承認書を1レコードとして考えます.正規化前の状態は次図のとおり.

01.正規化前

これを正規化すると,次の3つのテーブルに分解できます.

Continue reading “マスターテーブル更新の弊害”

Rubyのオブジェクト配列

まずは,このRubyのプログラムをみてください.

class Abc
  attr_accessor :value
end

a = Array.new(5, Abc.new)

for i in 0..4
  a[i].value = i * 10
  puts a[i].value
end

puts "---"

for i in 0..4
  puts a[i].value
end

実行結果はこうなります.

$ ruby test.rb
0
10
20
30
40
---
40
40
40
40
40

期待していた結果,つまり後半のputsも,「0, 10, 20, 30, 40」という出力になると思っていましたが違うようです.

さて,なぜでしょう.

Continue reading “Rubyのオブジェクト配列”