Нет SQL дизайн базы данных - повторяемые данные - PullRequest
0 голосов
/ 13 апреля 2020

Я учусь нет sql и пытаюсь понять, как будет выглядеть дизайн базы данных, например, для сайта базы данных mov ie? Это очень смущает меня, потому что я не могу понять, что я дублирую так много информации. Я приведу вам пример (возможно, я не понял это правильно, и вы могли бы исправить меня):

Итак, если у меня есть мов ie:

{
    "title": "Interstellar",
    "director": ...
    ...
    "genre": [
        "Comedy", "Action", ...
    ],
    "actors": [
        {
            "name": ...
            ...
        },
        {
            "name": ...
            ...
        },
    ],
}

I будет много одинаковых "жанровых" и "актеров" между фильмами. Это не кажется логичным ... а если у меня есть другие повторяющиеся вещи, такие как "категории", например? А что если я захочу связать пользователя с фильмами? Я имею в виду, ты понимаешь, о чем я? Пожалуйста, поясните, как (и почему) это должно быть реализовано в: sql.

Большое спасибо.

1 Ответ

0 голосов
/ 13 апреля 2020

Ну, для меня волхвы c о нет SQL - это решение, какую избыточность вы хотите. Решение, когда лучше хранить полный объект или просто указатель на другой объект в другой коллекции, зависит только от того, что вы хотите сделать.

Например, если вы хотите хранить информацию о фильмах и актерах которые участвовали в них, тогда вы могли бы использовать что-то вроде этого:

{
    movies: [
    {
        name: ...
        genres: ...
        rating: ...
        actors: [ id-actor1, id-actor2, id-actor3]
    }, 
    { 
        name: ...
        genres: ...,
        rating: ...,
        actors: [id-actor2, id-actor4]
    },
    { other bunch of actors }
    ],
    actors: [
    {
        id: id-actor1,
        name: John McActor,
        favorite_food: Tacos
    },
    {
        id: id-actor2,
        name: Jenny McActress,
        favorite_food: Pizza
    },
    { other bunch of actors }
    ]
}

Таким образом, вам не нужно хранить информацию об актерах в каждом мове ie, а просто идентификатор для фильтрации, когда вам нужна информация Таким образом, актеры не сохраняются в каждом отдельном mov ie, а только на них ссылаются, и вы можете значительно уменьшить размер БД.

Существует множество различных способов сделать это, увеличив или сокращение избыточности, но в конечном итоге это зависит от того, чего вы хотите достичь.

...