Я не понимаю, почему вы не можете использовать «традиционные запросы», как вы заявили. SQL может использоваться для написания чрезвычайно сложных запросов. В этом отношении я не уверен, что это чрезвычайно сложный вопрос.
Во-первых, я бы посмотрел на поведение, которое вы описали, как на переменную транзакцию, поэтому я рассматриваю транзакции как модель. Скорее всего, у меня будет таблица transactions
с некоторыми столбцами, такими как buyer
, seller
, amount
и т. Д. *
В качестве альтернативы вы можете иметь shares
в качестве своей собственной таблицы и хранить, скажем, предыдущие 100 владельцев этой доли в той же таблице, используя STI (Single Table Inheritance), покупая все первичные ключи владельцев в «владельцев» столбец в вашей таблице shares
, такой как 234/823/12334/1234/...
, чтобы вы могли выполнять сложные запросы и видеть, принадлежал ли этот общий ресурс одному и тому же человеку или действительно легко и быстро искать шаблоны в строке.
- обновление -
Я бы не советовал придумывать «маленький язык». Я не понимаю, почему вы захотите сделать что-то подобное, когда у вас есть огромный выбор замечательных языков и баз данных, из которых все хорошо отточено и проверенные методы, чтобы точно решить, что вы делаете.
Мой лучший совет - откройте вашу IDE (палец вверх для TextMate) и выберите свой любимый язык (в моем случае Ruby). Найдите пример данных, создайте базу данных и начните писать код! Вы не ошибетесь, пытаясь экспериментировать подобным образом, это полностью откроет лучшие способы сделать это, чем мы можем придумать здесь, на Stackoverflow.