MySQL: таблицы ссылок - PullRequest
0 голосов
/ 08 июля 2011

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

Вы видите какие-либо проблемы с ним?

My Database

Ответы [ 3 ]

2 голосов
/ 08 июля 2011

выглядит хорошо, хотя category_link_table может быть проблематичным. Если ваши бизнес-требования не позволяют связать с категорией ИЛИ подкатегорию, не храните идентификаторы основной категории и подкатегории в таблице ссылок. Хранить только идентификатор подкатегории.

Имея и то, и другое, вы потенциально можете получить несоответствия categoryID / subcategoryIDs, в которых есть что-то из категории 'A' и подкатегория 'p' в категории 'B'.

1 голос
/ 08 июля 2011

В целом, я бы остановился на соглашениях об именах для ваших таблиц.Я бы предпочел «бизнес» бизнесу «data_data» - он отражает бизнес-область, а не технические проблемы.

Я бы также назвал ваши таблицы ссылок по-другому - как правило, "business_category" более чист, как и "category_subcategory".

1 голос
/ 08 июля 2011

Пара комментариев:

  1. Я не вижу необходимости в поле идентификатора в Link_table.business_id, catagory_id должен быть уникальным.

  2. Ваша настройка таблицы подкатегории кажется странной, у вас есть таблица ссылок.Я бы подумал, что в каждой подкатегории будет просто поле для родительской категории (catagory_id).Я предпочитаю этот вид, если дело в том, чтобы иметь таблицу категорий с parent_catagory_id и делать самостоятельные объединения на одной таблице.

...