Я должен использовать столбец индекса в, многие многим “связывают” таблицу?

С наконец, можно очистить ресурсы, даже если оператор выгоды выдает исключение до программы вызова. С Вашим примером, содержащим пустой оператор выгоды, существует мало различия. Однако, если в Вашей выгоде, Вы сделаете некоторую обработку и бросите ошибку, или даже просто не будете даже иметь выгоды вообще, то наконец будет все еще выполнен.

5
задан Brian Tompsett - 汤莱恩 20 January 2017 в 10:41
поделиться

6 ответов

Это зависит.

  • Вы видите свои данные больше как набор объектов (а реляционная база данных - это просто носитель информации) или как набор фактов, представленных и проанализированных изначально реляционной алгеброй.

  • Некоторые ORM / Frameworks / Tools не имеют хорошей поддержки многоколоночных первичных ключей. Если вы используете один из них, вам понадобится дополнительный столбец идентификатора.

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

  • Если вы начнете добавлять некоторую дополнительную информацию к этой ассоциации, то она может достичь точки, когда она станет нечто большее, чем отношение «многие ко многим» двух сущностей. Он становится самостоятельной сущностью, и было бы удобнее, если бы у него был собственный идентификатор. не зависит от подключаемых объектов.

11
ответ дан 18 December 2019 в 06:50
поделиться

Вам не требуется для добавления дополнительного столбца индекса с автоинкрементом, но я (возможно, в отличие от большинства других) все же рекомендую это сделать. Во-первых, в прикладной программе проще ссылаться на строку с помощью одного номера, например, когда вы удаляете строку. Во-вторых, иногда бывает полезно знать порядок, в котором были добавлены строки.

6
ответ дан 18 December 2019 в 06:50
поделиться

Нет, в этом нет необходимости, учитывая, что эти два столбца уже выполняют функцию первичного ключа.

Этот третий столбец просто добавит больше места в вашу таблицу.

Но ... Вы могли бы использовать это, возможно, чтобы увидеть порядок, в котором ваши записи были добавлены в вашу таблицу. Это единственная функция, которую я вижу в этом столбце.

3
ответ дан 18 December 2019 в 06:50
поделиться

Вам не нужно добавлять столбец индекса с автоинкрементом. Стандартная практика - использовать только два существующих столбца в качестве первичного ключа для таблиц ассоциации M: M, как вы описываете.

2
ответ дан 18 December 2019 в 06:50
поделиться

Я бы сделал первичный ключ category_id и product_id. Добавляйте автоматическое приращение только в том случае, если порядок когда-либо будет актуален для дальнейшего использования.

1
ответ дан 18 December 2019 в 06:50
поделиться

Возникает концептуальный вопрос: является ли products_categories сущностью или просто таблицей, которая представляет отношения между двумя сущностями? Если это сущность, то, даже если нет дополнительных атрибутов, я бы выступал за отдельный столбец идентификатора для этой сущности. Если это связь, если есть дополнительные атрибуты (например, begin_date, end_date или что-то в этом роде), я бы рекомендовал иметь первичный ключ с несколькими столбцами.

0
ответ дан 18 December 2019 в 06:50
поделиться
Другие вопросы по тегам:

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