Если у меня есть tblBookInfo (bookId, title... и т. д.), и я хочу, чтобы в нем был столбец категорий, как лучше всего это сделать?
Опция 1
таблица категорий будет иметь FK, связанную с bookId, как это
tblBookInfobookId title
1 test title
2 test title 2
tblCategories
bookId name
1 Science fiction
1 Mystery
1 Horror
2 Science fiction
2 Mystery
В этом случае название категории будет повторяться много раз, и это некрасиво
Вариант 2
Сохраните массив int в btlBookInfo следующим образом
tblBookInfobookId title categories
1 test title [1,2,3]
2 test title 2 [1,2]
Я слышал, что хранение массива в столбце не является лучшей практикой, как было задано здесь
Вариант 3
Оставьте таблицу категорий как есть
tblCategoriesid name
1 Science finction
2 Mystery
3 Horror
И добавьте FK в tblBookInfo, как это
tblBookInfobookId title categoryId
1 test title 1
2 test title 2 2
Наконец, добавьте еще одну таблицу, которая связывает их с таблицами, подобными этой.
tblCategoryAdapterbookId categoryId
1 1
1 2
1 3
2 1
2 2
Теперь мне не нужно повторять название категории, но я не думаю, что это нормально