Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / База для сайта / 17 сообщений из 17, страница 1 из 1
09.07.2010, 10:38
    #36731896
schizophrenic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База для сайта
правильно?
...
Рейтинг: 0 / 0
09.07.2010, 11:22
    #36732041
Rin@t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База для сайта
schizophrenicправильно?Неа. Нифига непонятно, если честно .


ps. Связь между "документами" и "ключевыми словами" многое-ко-многим. Не?
...
Рейтинг: 0 / 0
09.07.2010, 11:33
    #36732081
schizophrenic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База для сайта
...
Рейтинг: 0 / 0
09.07.2010, 11:40
    #36732116
schizophrenic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База для сайта
Rin@t,

судя по вашим обсуждениям на данном форуме, мнение в расчет не беру...
...
Рейтинг: 0 / 0
09.07.2010, 11:50
    #36732156
Rin@t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База для сайта
schizophrenicRin@t,

судя по вашим обсуждениям на данном форуме, мнение в расчет не беру...Зря . На вопросик-то можно было ответить? Подумайте.

Rin@tСвязь между "документами" и "ключевыми словами" многое-ко-многим. Не?
...
Рейтинг: 0 / 0
09.07.2010, 12:03
    #36732197
schizophrenic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База для сайта
Rin@tмногое-ко-многимнет, а зачем?
...
Рейтинг: 0 / 0
09.07.2010, 12:08
    #36732211
Rin@t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База для сайта
schizophrenicRin@tмногое-ко-многимнет, а зачем?В моём понимании одни и те же ключевые слова могут повторяться для разных документов.
...
Рейтинг: 0 / 0
09.07.2010, 12:09
    #36732212
schizophrenic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База для сайта
...
Рейтинг: 0 / 0
09.07.2010, 12:11
    #36732218
schizophrenic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База для сайта
Rin@tschizophrenicRin@tмногое-ко-многимнет, а зачем?В моём понимании одни и те же ключевые слова могут повторяться для разных документов.
а разве данная модель отрицает это?
...
Рейтинг: 0 / 0
09.07.2010, 12:15
    #36732226
schizophrenic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База для сайта
обратите внимание на структуру таблицы дат и обращения к ним,
применение внешних ключей не противоречит вашим понятиям

DDL - SQL
Код: 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.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
DROP TABLE IF EXISTS BASE.Documents;
DROP TABLE IF EXISTS BASE.Authors;
DROP TABLE IF EXISTS BASE.Descriptions;
DROP TABLE IF EXISTS BASE.Keywords;
DROP TABLE IF EXISTS BASE.Titles;
DROP TABLE IF EXISTS BASE.Bodys;
DROP TABLE IF EXISTS BASE.Status;
DROP TABLE IF EXISTS BASE.Groups;
DROP TABLE IF EXISTS BASE.Dates;
DROP TABLE IF EXISTS BASE.Attributes;

CREATE TABLE IF NOT EXISTS BASE.Attributes(
	ID INT( 16 ) NOT NULL AUTO_INCREMENT,
	Value ENUM('visible', 'hidden') NOT NULL,
	PRIMARY KEY (ID),
	INDEX ID_Attributes (Value)
) ENGINE = INNODB;

CREATE TABLE IF NOT EXISTS BASE.Dates(
	ID INT( 16 ) NOT NULL AUTO_INCREMENT,
	Value TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
	PRIMARY KEY (ID),
	INDEX ID_Dates (Value)
) ENGINE = INNODB;

CREATE TABLE IF NOT EXISTS BASE.Groups(
	ID INT( 16 ) NOT NULL AUTO_INCREMENT,
	Value ENUM('guest', 'manager', 'user') NOT NULL,
	PRIMARY KEY (ID),
	INDEX ID_Groups (Value)
) ENGINE = INNODB;

CREATE TABLE IF NOT EXISTS BASE.Status(
	ID INT( 16 ) NOT NULL AUTO_INCREMENT,
	Value ENUM('on', 'off') NOT NULL,
	PRIMARY KEY (ID),
	INDEX ID_Status (Value)
) ENGINE = INNODB;

CREATE TABLE IF NOT EXISTS BASE.Bodys(
	ID INT( 16 ) NOT NULL AUTO_INCREMENT,
	Value MEDIUMTEXT NOT NULL,
	PRIMARY KEY (ID)
) ENGINE = INNODB;

CREATE TABLE IF NOT EXISTS BASE.Titles(
	ID INT( 16 ) NOT NULL AUTO_INCREMENT,
	Value VARCHAR( 64 ) NOT NULL,
	PRIMARY KEY (ID),
	INDEX ID_Titles (Value)
) ENGINE = INNODB;

CREATE TABLE IF NOT EXISTS BASE.Keywords(
	ID INT( 16 ) NOT NULL AUTO_INCREMENT,
	Value VARCHAR( 128 ) NOT NULL,
	PRIMARY KEY (ID),
	INDEX ID_Keywords (Value)
) ENGINE = INNODB;

CREATE TABLE IF NOT EXISTS BASE.Descriptions(
	ID INT( 16 ) NOT NULL AUTO_INCREMENT,
	Value VARCHAR( 128 ) NOT NULL,
	PRIMARY KEY (ID),
	INDEX ID_Descriptions (Value)
) ENGINE = INNODB;

CREATE TABLE IF NOT EXISTS BASE.Authors(
	ID INT( 16 ) NOT NULL AUTO_INCREMENT,
	Name VARCHAR( 64 ) NOT NULL,
	Password VARCHAR( 64 ) NOT NULL,
	ID_Authorized INT( 16 ) NOT NULL,
	ID_Blocked INT( 16 ) NOT NULL,
	ID_Groups INT( 16 ) NOT NULL,
	ID_Status INT( 16 ) NOT NULL,
	PRIMARY KEY (ID),
	INDEX ID_Authors (Name)
) ENGINE = INNODB;

CREATE TABLE IF NOT EXISTS BASE.Documents(
	ID INT( 16 ) UNSIGNED NOT NULL AUTO_INCREMENT,
	PID INT( 16 ) NOT NULL,
	Name VARCHAR( 32 ) NOT NULL,
	ID_Author INT( 16 ) NOT NULL,
	ID_Description INT( 16 ) NOT NULL,
	ID_Keyword INT( 16 ) NOT NULL,
	ID_Title INT( 16 ) NOT NULL,
	ID_Body INT( 16 ) NOT NULL,
	ID_Created INT( 16 ) NOT NULL,
	ID_Changed INT( 16 ) NOT NULL,
	ID_Attribute INT( 16 ) NOT NULL,
	PRIMARY KEY (ID),

	INDEX ID_Authors (ID_Author),
	INDEX ID_Descriptions (ID_Description),
	INDEX ID_Keywords (ID_Keyword),
	INDEX ID_Titles (ID_Title),
	INDEX ID_Bodys (ID_Body),
	INDEX ID_Createds (ID_Created),
	INDEX ID_Changeds (ID_Changed),
	INDEX ID_Attributes (ID_Attribute),

	CONSTRAINT ID_Author FOREIGN KEY (ID_Author)
	REFERENCES BASE.authors (ID) ON UPDATE CASCADE,

	CONSTRAINT ID_Descriptions FOREIGN KEY (ID_Description)
	REFERENCES BASE.descriptions (ID) ON UPDATE CASCADE,

	CONSTRAINT ID_Keywords FOREIGN KEY (ID_Keyword)
	REFERENCES BASE.keywords (ID) ON UPDATE CASCADE,

	CONSTRAINT ID_Titles FOREIGN KEY (ID_Title)
	REFERENCES BASE.titles (ID) ON UPDATE CASCADE,

	CONSTRAINT ID_Bodys FOREIGN KEY (ID_Body)
	REFERENCES BASE.bodys (ID) ON UPDATE CASCADE,

	CONSTRAINT ID_Createds FOREIGN KEY (ID_Created)
	REFERENCES BASE.Dates (ID) ON UPDATE CASCADE,

	CONSTRAINT ID_Changeds FOREIGN KEY (ID_Changed)
	REFERENCES BASE.Dates (ID) ON UPDATE CASCADE,

	CONSTRAINT ID_Attributes FOREIGN KEY (ID_Attribute)
	REFERENCES BASE.Attributes (ID) ON UPDATE CASCADE

) ENGINE = INNODB;

INSERT INTO BASE.Attributes (id, value) VALUES
( 1 , 'visible'), ( 2 , 'hidden');

INSERT INTO BASE.Dates (id, value) VALUES
( 1 , '15.07.2010'), ( 2 , '16.07.2010');

INSERT INTO BASE.Groups (id, value) VALUES
( 1 , 'guest'), ( 2 , 'manager'), ( 3 , 'user');

INSERT INTO BASE.Status (id, value) VALUES
( 1 , 'on'), ( 2 , 'off');

INSERT INTO BASE.Bodys (id, value) VALUES
( 1 , 'about Body'), ( 2 , 'help Body'), ( 3 , 'faq Body');

INSERT INTO BASE.Titles (id, value) VALUES
( 1 , 'about Title'), ( 2 , 'help Title'), ( 3 , 'faq Title');

INSERT INTO BASE.Keywords (id, value) VALUES
( 1 , 'about Keyword'), ( 2 , 'help Keyword'), ( 3 , 'faq Keyword');

INSERT INTO BASE.Descriptions (id, value) VALUES
( 1 , 'about Description'), ( 2 , 'help Description'), ( 3 , 'faq Description');

INSERT INTO BASE.Authors (id, Name, Password, ID_Authorized, ID_Blocked,
ID_Groups, ID_Status) VALUES
( 1 , 'user 1', SHA('pass 1'), '1', '', '1', '1'),
( 2 , 'user 2', SHA('pass 2'), '2', '', '2', '1');

INSERT INTO BASE.Documents (id, PID, Name, ID_Author, ID_Description,
ID_Keyword, ID_Title, ID_Body, ID_Created, ID_Changed, ID_Attribute) VALUES
( 1 ,  1 , 'about',  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  2 ,  1 ),
( 2 ,  1 , 'help',  2 ,  2 ,  2 ,  2 ,  2 ,  1 ,  2 ,  1 ),
( 3 ,  1 , 'faq',  1 ,  3 ,  3 ,  3 ,  3 ,  1 ,  2 ,  1 );

SELECT
	Authors.Name AS Author,
	Descriptions.Value AS Description,
	Keywords.Value AS Keyword,
	Titles.Value AS Title,
	Bodys.Value AS Body,
	Dates.Value AS Created,
	Dates.Value AS Changed
FROM
	BASE.Documents
	LEFT OUTER JOIN BASE.Authors
		ON Authors.ID = Documents.ID_Author
	LEFT OUTER JOIN BASE.Descriptions
		ON Descriptions.ID = Documents.ID_Description
	LEFT OUTER JOIN BASE.Keywords
		ON Keywords.ID = Documents.ID_Keyword
	LEFT OUTER JOIN BASE.Titles
		ON Titles.ID = Documents.ID_Title
	LEFT OUTER JOIN BASE.Bodys
		ON Bodys.ID = Documents.ID_Body
	LEFT OUTER JOIN BASE.Attributes
		ON Attributes.ID = Documents.ID_Attribute
	LEFT OUTER JOIN BASE.Dates
		ON Dates.ID = Documents.ID_Created
		AND Dates.ID = Documents.ID_Changed
WHERE
	Documents.Name = 'help' AND
	Attributes.Value = 'visible'
...
Рейтинг: 0 / 0
09.07.2010, 12:17
    #36732238
Rin@t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База для сайта
schizophrenicRin@tschizophrenicRin@t многое-ко-многим нет, а зачем?В моём понимании одни и те же ключевые слова могут повторяться для разных документов.
а разве данная модель отрицает это?Она допускает ввод повторяющих данных в таблицу ключевых слов. Оно вам надо?
...
Рейтинг: 0 / 0
09.07.2010, 12:18
    #36732241
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База для сайта
schizophrenicRin@tмногое-ко-многимнет, а зачем?документ характеризуется только одним ключевым словом? если да, то незачем, если нет, то нужны многие-ко-многим.
...
Рейтинг: 0 / 0
09.07.2010, 12:20
    #36732248
schizophrenic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База для сайта
egorychесли да, то незачемкак понимать незачем?
...
Рейтинг: 0 / 0
09.07.2010, 12:23
    #36732258
Rin@t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База для сайта
egorychschizophrenicRin@tмногое-ко-многимнет, а зачем?документ характеризуется только одним ключевым словом? если да, то незачем, если нет, то нужны многие-ко-многим.Затем выяснится, что и связь "авторы-документы" - n:m.
...
Рейтинг: 0 / 0
09.07.2010, 13:14
    #36732438
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База для сайта
schizophrenicegorychесли да, то незачемкак понимать незачем?понимать в смысле, что можно оставить один-ко-многим
Rin@tЗатем выяснится, что и связь "авторы-документы" - n:m.+1 более чем возможная ситуация
...
Рейтинг: 0 / 0
09.07.2010, 15:23
    #36732866
База для сайта
egorych,

а что такое n:m?
...
Рейтинг: 0 / 0
09.07.2010, 15:35
    #36732906
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База для сайта
userman_from_prom_xromegorych,

а что такое n:m?это когда "n", пожалуй, мало, возьмём "m"
многие-ко-многим
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / База для сайта / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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