Безопасно строки Escape для фрагментов SQL для соединений, пределов, выбирают, и так далее (не условия) на направляющих

Я не знаю, корректно ли следующее, но я сказал бы, что в случае Объекта адреса, мы хотим использовать его в качестве Объекта Значения вместо Объекта, потому что изменения в объекте были бы отражены на всех связанных объектах (Человек, например).

Берут этот случай: Вы живете в своем доме с некоторыми другими людьми. Если бы мы использовали бы Объект для Адреса, я утверждал бы, что был бы один уникальный Адрес, с которым связываются все объекты Человека. Если один человек съезжает, Вы хотите обновить его адрес. Если бы Вы обновили бы свойства Объекта Адреса, у всех людей был бы различный адрес. В случае Объекта Значения мы не были бы в состоянии отредактировать Адрес (так как это неизменно), и мы были бы вынуждены предоставить новый Адрес тому Человеку.

Делает этот звук правильно? Я должен сказать, что был также все еще смущен этим различием после чтения книги DDD.

Движение один шаг вперед, как это было бы смоделировано в базе данных? У Вас были бы все свойства Объекта адреса как столбцы в таблице Person, или Вы составите отдельную таблицу Address, которая также имела бы уникальный идентификатор? В последнем случае у людей, живущих в том же доме, каждый был бы различный экземпляр Объекта адреса, но те объекты будут тем же за исключением своего свойства ID.

12
задан Simone Carletti 14 November 2009 в 14:37
поделиться

1 ответ

Обычно в Rails соединения выполняются как символ (или как хэш для соединений второго порядка), представляющий соединение по идентификатору, и вы используете условия для его фильтрации. Если вам нужно сделать это, как показано, вы можете использовать ActiveRecord sanitize_sql_array для очистки строки SQL, например:

sanitize_sql_array(["LEFT JOIN blah AS blah2 ON blah2.title = ?", @blah.title])
23
ответ дан 2 December 2019 в 06:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: