powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос по проектированию...
8 сообщений из 8, страница 1 из 1
Вопрос по проектированию...
    #32472600
Basil R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно связать воедино ID товара + ID его свойства + VALUE этого свойства.
Естественно свойств много.... как и товаров :)

Если пихнуть все в одну таблицу - удобно. Но тогда по всем канонам нужна еще одна, в которой будет только ID товара. На кой она тогда нужна, спрашивается?!

Как сделать "правильно и красиво"? ;)
...
Рейтинг: 0 / 0
Вопрос по проектированию...
    #32472706
ЮВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНужно связать воедино ID товара + ID его свойства + VALUE этого свойства.
Естественно свойств много.... как и товаров :)

Если пихнуть все в одну таблицу - удобно. Но тогда по всем канонам нужна еще одна, в которой будет только ID товара. На кой она тогда нужна, спрашивается?!

Как сделать "правильно и красиво"? ;)

По теории должны быть:
1 отдельно таблица товаров (Id_tov + name_nov)
2 отдельно таблица свойств (Id_ pro+ name_pro)
3 таблица-связка (Id_tov + Id_pro)

Практика показывает, что и по жизни так лучше.
...
Рейтинг: 0 / 0
Вопрос по проектированию...
    #32473084
Фотография Quark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Много это сколько?
2. Какие будут свойства у товара?
Макс. длина? картинки?
3. Будут ли расширяться?
4. Будут ли хранится свойства с историей изменений?
5. Какие будут запросы к этим свойствам?

В зависимости от жтих требований и стоит строить.
Возможно вам нужно всего лишь ID,attr1,attr2 на ближайшую пятилетку, стоит ли тогда из пушки по воробьям)
...
Рейтинг: 0 / 0
Вопрос по проектированию...
    #32473139
Programmer_Ortodox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уверяю Вас коллеги,что стоит! Все эти вопросы мной были решены и есть прекрасно работающие приложения. Можно сделать грандиозное по своей сложности информационное хранилище и при этом сама база будет состоять всего из 10 таблиц! К вопросам производительности это имеет прямое отношение. В созданной схеме неиндексированных чтений нет вообще, ну и так далее и тому подобное...Идеями могу поделиться только в общем виде, а готовое решение продам вашему работодателю. Честно говоря времени на эту штуку пришлось ухлопать очччень много...
...
Рейтинг: 0 / 0
Вопрос по проектированию...
    #32473148
Programmer_Ortodox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл дабавить, с этим сложным хранилищем работают SQL-запросы, чрезвычайно простые и лаконичные, если не сказать примитивные, вот такой вот парадокс...
...
Рейтинг: 0 / 0
Вопрос по проектированию...
    #32473160
Programmer_Ortodox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/*Базовая идентификация*/
CREATE TABLE NODE(
nID IDENT64 DEFAULT 0 NOT NULL, /*Идентификатор*/
nParent IDENT64 DEFAULT 0 NOT NULL, /*Категория*/
nName dName NOT NULL, /*Наименование(имя)*/
nPRSET IDENT32 DEFAULT 0 NOT NULL, /*Код набора свойств*/
nLink IDENT64 DEFAULT -1 NOT NULL,/*Ссылка на общий элемент*/
nUID IDENT16 DEFAULT 0, /*Код пользователя(владельца записи) NOT NULL REFERENCES USERS,*/
nUR IDENT16 DEFAULT 255, /*Права пользователя */
nGID IDENT16 DEFAULT 0, /*Код группы владельца записи) NOT NULL REFERENCES GROUPS,*/
nGR IDENT16 DEFAULT 255, /*Права группы*/
nAR IDENT16 DEFAULT 0, /*Права всех*/
PRIMARY KEY(nID),
/*Уникальность имени в пределах текущего раздела*/
UNIQUE(nParent,nLink,nName),
/*Родитель должен уже существовать*/
CONSTRAINT PAR_NODE FOREIGN KEY(nParent) REFERENCES NODE(nID)
);


Это моя первая табличка
...
Рейтинг: 0 / 0
Вопрос по проектированию...
    #32473166
Programmer_Ortodox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select
NNAME,
NID,
NPARENT,
NLINK,
NAR,
NGID,
NGR,
NPRSET,
NUID,
NUR
from GET_SUBNODE(217)

А это пример SQL-запроса...
...
Рейтинг: 0 / 0
Вопрос по проектированию...
    #32473922
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
 /*==============================================================*/ 
 /* Table: значение                                              */ 
 /*==============================================================*/ 
create table значение (
   товар_id             int                  not null,
   свойство_id          int                  not null,
   значение             int                  null,
   constraint PK_ЗНАЧЕНИЕ primary key  (товар_id, свойство_id)
)
go


 /*==============================================================*/ 
 /* Index: Association_6_FK                                      */ 
 /*==============================================================*/ 
create   index Association_6_FK on значение (
товар_id
)
go


 /*==============================================================*/ 
 /* Index: Association_6_FK2                                     */ 
 /*==============================================================*/ 
create   index Association_6_FK2 on значение (
свойство_id
)
go


 /*==============================================================*/ 
 /* Table: свойство                                              */ 
 /*==============================================================*/ 
create table свойство (
   свойство_id          int                  not null,
   constraint PK_СВОЙСТВО primary key  (свойство_id)
)
go


 /*==============================================================*/ 
 /* Table: товар                                                 */ 
 /*==============================================================*/ 
create table товар (
   товар_id             int                  not null,
   constraint PK_ТОВАР primary key  (товар_id)
)
go


alter table значение
   add constraint FK_ЗНАЧЕНИЕ_ASSOCIATI_СВОЙСТВО foreign key (свойство_id)
      references свойство (свойство_id)
go


alter table значение
   add constraint FK_ЗНАЧЕНИЕ_ASSOCIATI_ТОВАР foreign key (товар_id)
      references товар (товар_id)
go
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос по проектированию...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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