Nano Hash - криптовалюты, майнинг, программирование

Базовый дизайн базы данных

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

Спасибо, Турейн.

16.05.2010

Ответы:


1

Если у вас есть возможность установить видимость для набора пользователей или набора групп пользователей, вам понадобятся обе упомянутые вами таблицы m2m. Один contact_users и один contact_usergroups.

То, что я сказал, верно, если «набор пользователей» отличается от одной «группы пользователей».

16.05.2010
  • Да, как насчет этого, существует отношение «один ко многим» между пользователями и группами пользователей, и мне нужно только установить видимость для набора групп пользователей. 17.05.2010
  • Тогда у вас все в порядке с одной таблицей m2m. Вам нужен другой, только если вы хотите установить видимость для одного пользователя. 17.05.2010
  • Минутку: one2many пользователей-групп пользователей? Уверены ли вы? Разве это не должно быть m2m? У пользователей много групп пользователей, а у групп пользователей много пользователей? 17.05.2010
  • Да, правильно, m2m между пользователями-группами пользователей. Итак, вы также думаете, что правильно иметь отношения m2m между группами пользователей и контактами, если я имею дело с видимостью только с группой использования? Таким образом, дизайн должен быть m2m между контактами и группами пользователей, и еще один m2m между пользователями и группами пользователей, верно? :) 17.05.2010
  • Да, я так думаю, если я правильно понял вашу проблему. Я имею в виду, что понять отношения довольно просто. Скрывает ли пользователь контакт от многих групп пользователей и не может ли группа пользователей видеть многие контакты? Если да, то это m2m. Да, я уверен, что вы можете принять мой ответ :) 17.05.2010
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..