Размещение базы данных для нескольких пользователей - PullRequest
0 голосов
/ 19 сентября 2019

Не совсем уверен, как это сформулировать, но, по сути, я пытаюсь реализовать некоторые функции входа / пользователя, чтобы каждый пользователь мог регистрировать свою СОБСТВЕННУЮ коллекцию карточек, а не входить в систему и видеть КАЖДЫЕ карточки.etc

Будет ли asp.net для этого лучше всего подходить?если это так, кто-то может посоветовать умный метод, основанный на моих моделях и таких ниже:

public class Card
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int? Atk { get; set; }
    public int? Def { get; set; }
    public string Desc {get; set;}
    public int? Level { get; set; }
    public string Type { get; set; }
    public string Attribute { get; set; }
    [DisplayName("Image")]
    public virtual List<Image> Card_Images { get; set; }

    public virtual List<Deck> Deck { get; set; }


}

public class Deck
{
    public int id { get; set; }

    public string Name { get; set; }

    public string Notes { get; set; }
    [DisplayName("Card")]
    public virtual List<Card> Card { get; set; }
}

public class DeckCardViewModel
{
    public Card Cards { get; set; }
    public IEnumerable<Deck> Decks { get; set; }
}

Целевое поведение:

Новые пользователи регистрируются и регистрируются, они добавляют карты в свою коллекцию и создают колоды и т.д.ДРУГОЙ новый пользователь регистрируется и входит в систему, добавляя карточки в свою коллекцию ПОЛНОСТЬЮ Независимо от таблиц данных других пользователей

например, например, как мы все можем войти в gmail, но не можем просматривать электронные письма друг друга.

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

Не знаю, как с этим справиться, и, как вы, вероятно, можете сказать, мне сложно сформулировать свой вопрос, так же трудно точно знать, что именно Google поможет мне решить мою проблему.

ресурсы очень приветствуются!

1 Ответ

0 голосов
/ 19 сентября 2019

Есть несколько способов сделать это:

  1. На уровне базы данных с использованием защиты на уровне строк (https://docs.microsoft.com/en-us/sql/relational-databases/security/row-level-security?view=sql-server-2017)
  2. Установить фильтрацию с помощью предложения WHERE в SQL.

например

var userCards = await _context.Cards.Where(x => x.UserId == userId).ToArrayAsync();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...