Это - просто неэффективное использование SQL, неважно, как Вы делаете это.
, возможно, что-то как
right('XXXXXXXXXXXX'+ rtrim(@str), @n)
, где X Ваш дополнительный символ и @n, является количеством символов в получившей строке (предполагающий необходимость в дополнении, потому что Вы имеете дело с фиксированной длиной).
, Но поскольку я сказал, что необходимо действительно постараться не делать это в базе данных.
Если вы хотите реплицировать атрибуты события в Talk и Meeting, вы можете переместить его в модуль:
module EventFields
def self.included(base)
base.class_eval do
include DataMapper::Resource
property :id, DataMapper::Types::Serial
property :begin, DateTime
# other fields here
end
end
end
class Talk
include EventFields
property :title, String
belongs_to :meeting
end
class Meeting
include EventFields
has n, :talks
end
Это даст вам разные таблицы, но означает сокращение дублирования.