Вопрос для начинающего SQL Server ERD Logic. Почему таблицы должны быть структурированы таким образом? - PullRequest
0 голосов
/ 07 января 2019

Я создаю веб-сайт с базой данных, содержащей список игр. Будет несколько разных типов игр.

Я смотрю на диаграмму отношений сущностей SQL Server для справки, но мне интересно, какую часть я вставил ниже:

  • Почему GAME_TYPE будет его собственным столом, а не частью стола "Игры"?

  • Какова цель наличия GAME VARCHAR(MAX) в таблице GAME_TYPE?

GAMES Table (Contains a listing of all games):
GAME_ID INT IDENTITY (1, 1)
GAME_TYPE_ID INT
GAME VARCHAR(MAX)
CONSTRAINT (GAME_TYPE_ID) REFERENCES GAME_TYPE(GAME_TYPE_ID)

GAME_TYPE Table (Contains a list of all game types):
GAME_TYPE_ID INT IDENTITY (1, 1)
GAME VARCHAR(MAX)

Просто пытаюсь прояснить логику проектирования баз данных SQL Server.

1 Ответ

0 голосов
/ 07 января 2019

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

Что касается Varchar (MAX), MAX допускает бесконечно длинные строки. В этой статье больше говорится о тегах Varchar (MAX) и TEXT. Почему бы не использовать varchar (max)?

...