Squeak.ru - шаблоны программирования

Схема отношений схемы базы данных

введите здесь описание изображения

Всем привет,

Я новичок в проектировании баз данных и пытаюсь разработать очень простую схему для модели.

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

Pokemon table:

  • Я получаю name, id (PK), type(FK), image and regionID(fk)
  • type является внешним ключом из таблицы Type и имеет отношение one-to-many. Это звучит правильно? Я думаю об этом, потому что one pokemon can have multiple types? Также для меня имеет смысл multiple pokemon can have multiple типов.
  • regionID — это внешний ключ из таблицы Region. many pokemon can live in many regions имеет смысл для меня. Или это должно быть one pokemon can live in multiple regions? Или multiple regions can have multiple pokemon?

Region table:

  • У меня здесь только PK. Нужен ли мне также FK из таблицы LocationWithinRegion?
  • У меня здесь отношения one to many, потому что 1 region can have multiple locations, но one location can't have multiple regions. Это правильно?

Type table:

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

Я впервые создаю схему базы данных, поэтому, пожалуйста, дайте мне знать, как она выглядит!

Спасибо


  • Тип первичного ключа pokmontype должен совпадать с FK таблицы pokmon 14.05.2016
  • Похоже уже. PK из Type table — это FK в таблице покемонов. 14.05.2016

Ответы:


1

В целом:

  • Дайте каждой таблице уникальное имя. User, а не Users, так как каждая
    строка представляет пользователя.
  • Предоставьте каждой таблице наименьший возможный первичный ключ. В большинстве случаев подойдет идентификатор int.
  • Создайте индекс для столбцов внешнего ключа. Это поможет присоединиться.

Теперь в вашем случае:

Между Pokemon и Type существует отношение "многие ко многим". Поэтому я бы удалил PokemonType string из таблицы Pokemon и создал таблицу Type(Id int Identity PK, Description string Unique) и таблицу PokemonType(PokemonId int FK on Pokemon, TypeId int FK on Type, PK on both columns).

Также существует отношение «многие ко многим» между Pokemon и Region.

В общем, для представления отношения «многие ко многим» вам нужна таблица поиска между двумя таблицами.

Что-то вроде A(id) -> Lookup(A.id, B.id) ‹- B(id)

14.05.2016
Новые материалы

Угловая структура архитектуры
Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

«Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

Создайте API с помощью Python FastAPI
Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

Веселье с прокси-сервером JavaScript
Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...