Моя база данных может иметь треугольные отношения?

Возьмите таблицы: Пользователь, Комментарий, Отрывок.

У Пользователя может быть много Отрывков. Отрывок может иметь много Комментариев. Пользователь может оставить много Комментариев.

В свою очередь, когда я схематически изображаю вещи, я заканчиваю с чем-то как треугольник.

User 1-------------* Comment
      \           / 
       \         /
        *Snippet 1
6
задан Tyler Carter 2 March 2010 в 05:51
поделиться

2 ответа

Конечно, в базе данных могут быть такие отношения:

Users
  id
  name
  address

Snippets
  id
  user_id
  body

Comments
  id
  body
  snippet_id
  user_id

Примеры:

--Get all comments by a user
SELECT * FROM comments WHERE user_id = 1

--Get all snippets by a user
SELECT * FROM snippets WHERE user_id = 1

--Get all comments on a snippet
SELECT * FROM comments WHERE snippet_id = 1

--Get all comments on a particular snippet by a particular user
SELECT * FROM comments WHERE snippet_id = 1 AND user_id = 1
7
ответ дан 10 December 2019 в 02:46
поделиться

Совершенно верно.

create table Users (Id int not null primary key identity(1,1))
create table Snippets (Id int not null primary key identity(1,1), 
                       UserId int not null)
create table Comments (Id int not null primary key identity(1,1),
                       SnippetId int not null,
                       UserId int not null)

Настройте внешние ключи, и все готово.

2
ответ дан 10 December 2019 в 02:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: