У меня есть таблица, которая выглядит примерно так:
Идентификатор | ключевое слово | категория | подкатегория | Sub-Sub-Category | Sub-Sub-Sub-Category
Сделайте я должен разделить его в двух таблицах (таблица ключевого слова и таблица категорий с родительским идентификатором), если одно ключевое слово может только принадлежать одной категории, подкатегория... и т.д. значение, что там не повторение. существует ли все еще потребность разделить его?
Для отображения карты 1-1 нужна только одна таблица. Чтобы отобразить 1-множество или много-множество отображений, необходимо использовать несколько таблиц.
Если ключевое слово может соответствовать только одной категории/подкатегории/подкатегории, ваша текущая раскладка должна быть в порядке.
Одно предостережение: если вы хотите осуществлять поиск по ключевому слову, то для разделения таблиц может потребоваться увеличение производительности. Намного быстрее выполнить поиск по целочисленным словам.
Обсуждение хранения значений ключевых слов в другой таблице грубо соответствует этому обсуждению хранения названий стран (которые в основном статичны) в другой таблице. Ключевыми преимуществами использования другой таблицы могут быть такие вещи, как (разговорная) языковая независимость, быстрый поиск и простота обновления в дальнейшем.
Я бы сделал это в двух таблицах с каждым внешним ключом, поступающим из таблицы категорий:
Keywords
id (PK)
keyword
category_id (FK)
Categories
category_id (PK)
category
parent_category_id (FK)
данные в таблице категорий будут выглядеть:
category_id category parent_category_id
1 Food null
2 meat 1
3 organic 1
4 fruit 3
, и что данные в таблице ключевых слов будут выглядеть:
id keyword category_id
1 grapes 4
2 chicken 2
Это может иметь смысл разделить его , если вы ожидаете переименовать или переставить свои категории позже:
Взвешивают минусы и плюсы обоих, а затем принять решение. М
Я бы использовал две таблицы, подобные этому.
Categories
-------------------
PK,FK1 | CategoryID
| Keyword
| Category
SubCategories
--------------------
PK,FK1 | CategoryID
PK,FK1 | SubCategoryID
Почему бы не просто добавить столбец Parentid и FK к PK?