1

Я хотел бы выразить выбор между записями в SQL.Выражая выбор между записями в SQL

Предположим, что Люди имеют дело с проблемами. Надеемся, Мнения помогут нам найти отличные решения для них. Некоторые из этих решений хороши, некоторые из них плохие. Следовательно, человек должен выбрать один, который наилучшим образом соответствует его потребностям.

Для того, чтобы выразить это выбора, я нашел два способа сделать это:

1) Использование логического поля с именем is_chosen в решений таблицы. Если выбрано решение, поле устанавливается как true.

Solution 1

2) Используя вторую ассоциацию между проблем и решений таблиц. По умолчанию этот дополнительный внешний ключ установлен как null, поскольку решение еще не выбрано. Это позволяет решить только одно уникальное решение, но подразумевает другую связь между обоими объектами.

Solution 2

По вашему мнению, что один из этих двух альтернатив является наиболее экономически эффективным?

ответ

1

Я бы пошел первым. Зачем? Во-первых, поскольку второе решение создает круговую ссылку, препятствующую использованию встроенных в sql-сервер возможностей pk/fk update/delete. И если вы хотите использовать ORM, они не поддерживают циклические ссылки. Два, потому что вопросы реальной жизни редко имеют одно лучшее решение. Geniuses придумают множество решений и возможность маркировать/оценивать эти решения на более чем критерии будет полезна. Три, экономически эффективные ... вы имеете в виду экономическую эффективность чтения данных или записи данных? Это компромисс. Двигатели SQl очень умны, и если вы не планируете иметь> 100 миллионов строк в ваших таблицах и не планируете поддерживать индексы, разница не будет заметна ни в чтениях, ни в записи.

+0

Jejew91 не использует SQL Server. –

Смежные вопросы