структура таблиц для транзакций

AlterEgo

Guest
структура таблиц для транзакций

нужно хранить данные транзакций с нескольких платежных систем (webmoney, e-gold, paycash, rupay и иже с ними)
часть данных у них общая - id, sum, payer, payee, stamp, batch
и у некоторых систем есть дополнительные, например invoice (webmoney), currency (wm, e-gold) и т.п.

как лучше поступить:
1) все в одной таблице, неиспользуемые поля заNULLять
2) общие поля - в одну таблицу + несколько таблиц по числу платежных систем со специфичными данными
3) общая таблица + таблица "атрибутов" (здесь у всех дополнительных данных получается один тип должен быть, что не всегда удобно)

пжалст у кого опыт подобных вещей был - подскажите, а то самому лоб о грабли расшибать не хочется =)
 

Popoff

popoff.donetsk.ua
Если по этим дополнительным полям не нужно искать, то все в одной таблице + отдельное поле, в котором хранится результат функции serialize.
 

AlterEgo

Guest
странное решение :-\
это конечно очень удобно будет, но как же принципы? ведь такая таблица даже 1НФ не будет соответствовать...
 

Popoff

popoff.donetsk.ua
В некоторых случаях удобно упаковывать и хранить данные в столбцах BLOB. В этом случае необходимо добавить дополнительный код для запаковывания в BLOB и распаковывания обратно, но на некотором этапе это может сэкономить много обращений. Это практично, когда ваши данные не согласуются со структурой статической таблицы.
http://dev.mysql.com/doc/mysql/ru/tips.html

Если бы твои данные хорошо согласовывались бы со структурой статической таблицы, то у тебя вопроса не возникло бы.
 

AlterEgo

Guest
ок, спасибо
так и сделаю скорее всего
 
Сверху