powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Блог. Ряд вопросов.
14 сообщений из 14, страница 1 из 1
Блог. Ряд вопросов.
    #35447450
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу нигде найти структуру БД для блога. Например хранения в БД блога, я предполагаю наличие 2-х таблиц:

таблица "Блог":
* BlogID - ID блога
* userID - ID пользователя, добавившего запись
* date - дата добавления сообщения
* text - текст, который содержит блог
* title - заголовок блога

таблица "Комментарии":

* BlogID - ID блога, для которого комментарий
* commentID - ID комментария
* userID - ID пользователя, добавившего комментарий
* date - дата добавления комментария
* text - текст комментария

Но тут вопросы такие:
- Как например осуществлять хранение картинок, содержащихся в блоге? Правильно ли я понимаю, что каждая картинка заливается на сервер и в БД храниться ссылка на её расположение на сервере?
Если оно так и есть, то как это организовать при проектировании БД?

- Нужны ли доп. таблицы к тому, что написал выше?
...
Рейтинг: 0 / 0
Блог. Ряд вопросов.
    #35448603
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделать поле "Путь к картинке", где и хранить путь,а по нему в страничке ее загружать.
...
Рейтинг: 0 / 0
Блог. Ряд вопросов.
    #35455345
dfkk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я бы еще таблицу / поле с текстом комментариев добавил)
...
Рейтинг: 0 / 0
Блог. Ряд вопросов.
    #35457017
имхо: не с той стороны подходите к вопросу. Необходимо либо ТЗ или, если блог делается для собственных нужд, то всё равно оформить для себя на клочке notepada для чего он и что в нём должно быть реализовано . И из этого уже делать структуру. Ибо в свободном полёте фантазии полей и таблиц ещё много можно придумать: различные статусы: типа текущей музыки, настроения, метатеги, категории, механизм "френдов" и т.д. А оно Вам нужно?
...
Рейтинг: 0 / 0
Блог. Ряд вопросов.
    #35458004
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уже решилось. всё тип-топ. как тут тему удалить?
...
Рейтинг: 0 / 0
Блог. Ряд вопросов.
    #35458588
man.without.faceуже решилось. всё тип-топ. как тут тему удалить?

А зачем удалять? Решилось, напиши тут решение, сцылки приведи.
Думаешь только у тебя такой вопрос возник?
Нашел решение, напиши. Люди тебе потом спасибо скажут.
...
Рейтинг: 0 / 0
Блог. Ряд вопросов.
    #35458606
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
CREATE TYPE notifyType AS ENUM('email', 'message');


CREATE TABLE "blog_black_list" (
  "ID" BIGSERIAL NOT NULL,
  "userID" int8 NOT NULL,
  PRIMARY KEY("ID")
);


CREATE TABLE "friends_flags" (
  "userID" int8 NOT NULL,
  "friendID" int8 NOT NULL,
  "flag" bool NOT NULL DEFAULT False,
  PRIMARY KEY("userID","friendID")
);


CREATE TABLE "friends" (
  "userID" int8 NOT NULL,
  "friendID" int8 NOT NULL,
  PRIMARY KEY("userID","friendID")
);


CREATE TABLE "blog_subscribe" (
  "ID" BIGSERIAL NOT NULL,
  "userID" int8 NOT NULL,
  "blogID" int8 NOT NULL,
  "notify_type" notifyType NOT NULL DEFAULT 'email',
  PRIMARY KEY("ID")
);


CREATE TABLE "blog" (
  "ID" BIGSERIAL NOT NULL,
  "userID" int8 NOT NULL,
  "title" char NOT NULL,
  "text" text NOT NULL,
  "description" char,
  "date" timestamp with time zone NOT NULL,
  "IP" inet NOT NULL,
  "is_comments" bool NOT NULL DEFAULT True,
  "comment_for_friends" bool NOT NULL DEFAULT False,
  "read_for_friends" bool NOT NULL DEFAULT False,
  "deny_for_all" bool NOT NULL DEFAULT False,
  PRIMARY KEY("ID")
);

COMMENT ON COLUMN "blog"."title" IS 'тема блога';

CREATE TABLE "blog_comment" (
  "ID" BIGSERIAL NOT NULL,
  "blogID" int8 NOT NULL,
  "userID" int8 NOT NULL,
  "body" text NOT NULL,
  "date" timestamp with time zone NOT NULL,
  "IP" inet NOT NULL,
  PRIMARY KEY("ID")
);


CREATE TABLE "users" (
  "ID" BIGSERIAL NOT NULL,
  "nickname" char NOT NULL,
  "name" char NOT NULL,
  PRIMARY KEY("ID")
);



ALTER TABLE "blog_black_list" ADD CONSTRAINT "Ref_-01" FOREIGN KEY ("userID")
    REFERENCES "users"("ID")
      MATCH SIMPLE
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
      NOT DEFERRABLE;

ALTER TABLE "friends_flags" ADD CONSTRAINT "Ref_01" FOREIGN KEY ("userID")
    REFERENCES "users"("ID")
      MATCH SIMPLE
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
      NOT DEFERRABLE;

ALTER TABLE "friends_flags" ADD CONSTRAINT "Ref_02" FOREIGN KEY ("friendID")
    REFERENCES "users"("ID")
      MATCH SIMPLE
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
      NOT DEFERRABLE;

ALTER TABLE "friends" ADD CONSTRAINT "Ref_03" FOREIGN KEY ("userID")
    REFERENCES "users"("ID")
      MATCH SIMPLE
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
      NOT DEFERRABLE;

ALTER TABLE "friends" ADD CONSTRAINT "Ref_04" FOREIGN KEY ("friendID")
    REFERENCES "users"("ID")
      MATCH SIMPLE
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
      NOT DEFERRABLE;

ALTER TABLE "blog_subscribe" ADD CONSTRAINT "Ref_-07" FOREIGN KEY ("blogID")
    REFERENCES "blog"("ID")
      MATCH SIMPLE
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
      NOT DEFERRABLE;

ALTER TABLE "blog_subscribe" ADD CONSTRAINT "Ref_-06" FOREIGN KEY ("userID")
    REFERENCES "users"("ID")
      MATCH SIMPLE
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
      NOT DEFERRABLE;

ALTER TABLE "blog" ADD CONSTRAINT "Ref_-08" FOREIGN KEY ("userID")
    REFERENCES "users"("ID")
      MATCH SIMPLE
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
      NOT DEFERRABLE;

ALTER TABLE "blog_comment" ADD CONSTRAINT "Ref_-05" FOREIGN KEY ("userID")
    REFERENCES "users"("ID")
      MATCH SIMPLE
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
      NOT DEFERRABLE;

ALTER TABLE "blog_comment" ADD CONSTRAINT "Ref_00" FOREIGN KEY ("blogID")
    REFERENCES "blog"("ID")
      MATCH SIMPLE
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
      NOT DEFERRABLE;

======================================================================
blog - блог
----------------------------------------------------------------------
userID - ID пользователя.
title - заголовок сообщения блога.
text - сообщение блога.
description - описание.
date - дата, когда сделано сообщение.
IP - IP адрес пользователя, который сделал сообщение.
is_comments - разрешать/не_разрешать комментарии.
comments_for_friends - комментарии только для друзей.
read_for_friends - чтение только для друзей.
deny_for_all - запретить всем видеть сообщение в блоге.

======================================================================
blog_subscribe - подписка на изменения в блоге
----------------------------------------------------------------------
userID - ID пользователя.
blogID - ID сообщения блога.
notify_type - тип уведомления. Т.е. когда происходят изменения в блоге, то делается рассылка либо на email, либо как сообщение в профиль пользователя.

======================================================================
blog_comment - комментарии к блогу
----------------------------------------------------------------------
userID - ID пользователя.
blogID - ID сообщения блога.
body - комментарий
date - дата
IP - IP адрес пользователя, который сделал сообщение.

======================================================================
users - пользователи
----------------------------------------------------------------------
nickname - никнейм
name - имя

Другие поля на данный момент не важны.

======================================================================
blog_black_list - чёрный список пользователей.
----------------------------------------------------------------------
userID - ID пользователя.

======================================================================
friends - список друзей пользователя.
----------------------------------------------------------------------
userID - сам пользователь (ID)
friendID - ID друга.

======================================================================
friends_flags - пользователи, ещё не подтвердившие дружбу, сначала попадают в эту таблицу.
----------------------------------------------------------------------
userID - сам пользователь (ID)
friendID - ID друга.
flag - если false, то пользователь ещё не подтвердил дружбу. если true, то
======================================================================
...
Рейтинг: 0 / 0
Блог. Ряд вопросов.
    #35458620
Молодца!

Большое человеческое спасибо!
...
Рейтинг: 0 / 0
Блог. Ряд вопросов.
    #35458630
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не за что. вот ещё и пикчер (сорри, плохое качество).
...
Рейтинг: 0 / 0
Блог. Ряд вопросов.
    #35458633
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл сказать. Код для PostgreSQL. Но суть думаю и без того ясна.
...
Рейтинг: 0 / 0
Блог. Ряд вопросов.
    #35458689
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забавно другое - на предложенной схеме никакой инфы про картинки нет. Не очень понял разницу в таблицах friends и friendsflag
...
Рейтинг: 0 / 0
Блог. Ряд вопросов.
    #35458697
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри,насчет таблиц друзей понял. надеюсь таблица friends_flag чистится после того,как друг попал в таблицу друзей? если бы в ней была бы дата - был бы смысл,а так - пустая трата места после добавления в друзья.
...
Рейтинг: 0 / 0
Блог. Ряд вопросов.
    #35458719
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shtockсорри,насчет таблиц друзей понял. надеюсь таблица friends_flag чистится после того,как друг попал в таблицу друзей?
чистится. для этого и флаг стоит. в описании же есть всё. выше постами смотри.
...
Рейтинг: 0 / 0
Блог. Ряд вопросов.
    #35458729
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ааа... там не дописано. короче как меняется с false на true, так и очищается. точнее не меняется воовсе. как нужно поменять - удаляется запись из таблицы friends_flag и добавляется запись в friends.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Блог. Ряд вопросов.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]