Я не отставал от этого и придумал гибридное решение.
Я думаю, что функциональность полиморфизма Rails по умолчанию очень хорошо подходит для быстрого прототипирования.Но для долгосрочного решения я реализовал собственную полиморфную ассоциацию, используя промежуточную таблицу (например, Commentable
, Votable
).Я не могу найти сообщение, но Билл Карвин указывает этот метод в нескольких ответах на этом сайте.
Я не планирую использовать шардинг, но если бы я это сделал, я думаю, что решение Rails по умолчанию было быхороший.
Я написал свой собственный Mixins для эмуляции функциональности полиморфизма Rails по умолчанию.Это было немного сложно с добавлением внешних ключей или при добавлении взаимосвязи после заполнения таблицы, но кажется, что все работает гладко.
Наконец, мой проект в конечном итоге будет иметь несколько служб, работающих с аналитикой.неопределенный бэкэнд, скорее всего Java.Помимо ссылочной целостности, наличие стандартной реляционной модели лучше всего подходит для моих нужд.
Короче говоря, я думаю, что это зависит, но в 90% случаев лучше иметь целостность на уровне БД.