Создание модели данных для мультимедийной коллекции - PullRequest
0 голосов
/ 13 февраля 2020

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

Я начал с намерения просто отслеживать мою коллекцию видеоигр. Здесь я собрал модель данных первого прохода (не обращайте внимания на типы данных, не все будет varchar): https://i.imgur.com/eRpKigY.png

Я хочу иметь элемент " "быть экземпляром игры, поскольку я могу владеть несколькими копиями заголовка в разных условиях (обычно в разных цифровых сервисах). Это позволяет мне сохранить все метаданные игры, которые я выбираю (слева), например, MobyGames или TheGamesDB, всего один раз. Кроме того, я намеревался рассматривать мультиплатформенные релизы как разные игры. Например, Doom для P C будет отличаться от Doom для PS4. Я знаю, что это приведет к некоторым дублирующимся данным и может быть лучше нормализовано, но я действительно не владею таким множеством дубликатов, так что все должно быть в порядке, как это.

Так вот где мой возникает вопрос. Эта модель должна хорошо работать для базовой c коллекции просто игр . Но что, если я хочу расширить это? Что если я хочу отслеживать игровые приставки, аксессуары и другие предметы, каждый из которых имеет свои атрибуты? И если я собираюсь расширить его, почему бы не включить другие мои средства массовой информации, такие как фильмы, музыка c и книги? Я не уверен, как включить эти другие типы в управляемый способ.

  1. Это так же просто, как создание соответствующих таблиц для других типов носителей, заменив item.game_id на item. media_id и добавление нового столбца с именем item.media_type? Тогда я бы знал, что media_type «mov ie» означает, что значение в item.media_id относится, например, к таблице mov ie. Это просто кажется мне извращенным.

  2. Или вместо этого полностью отделить коллекцию игр от коллекции mov ie от коллекции книг, чтобы они никогда не перекрывались?

  3. Некоторые другие модели, о которых я не думал

Любые предложения будут с благодарностью приняты.

Спасибо, Патрик

...