powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как хранить атрибуты?
25 сообщений из 87, страница 1 из 4
Как хранить атрибуты?
    #37773810
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть два варианта (в спойлере). Какой лучше и почему ?:)
(Количество записей <<10000)

варианты
Код: sql
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.
/*===========================================================
* First variant
* 
*==========================================================*/
CREATE TABLE #Strings (
	ID INT,
	String NVARCHAR(32),
	Numbers NVARCHAR(32)
)

INSERT INTO #Strings VALUES (1, 'String1', '1, 2, 4')
INSERT INTO #Strings VALUES (2, 'String2', '4')
INSERT INTO #Strings VALUES (3, 'String3', '1, 3, 0')
INSERT INTO #Strings VALUES (4, 'String4', '4, 0')

SELECT String FROM #Strings WHERE Numbers LIKE N'%'+'4'+N'%'

DROP TABLE #Strings
GO

/*===========================================================
* Second variant
* 
*==========================================================*/
CREATE TABLE #Strings (
	ID INT,
	String NVARCHAR(32),
)

CREATE TABLE #Numbers (
	ID INT,
	Number NVARCHAR(32),
)

CREATE TABLE #StringsNumbers (
	ID INT,
	StringID INT,
	NumberID INT
)

INSERT INTO #Strings VALUES (1, 'String1')
INSERT INTO #Strings VALUES (2, 'String2')
INSERT INTO #Strings VALUES (3, 'String3')
INSERT INTO #Strings VALUES (4, 'String4')
INSERT INTO #Numbers VALUES (0, '0')
INSERT INTO #Numbers VALUES (1, '1')
INSERT INTO #Numbers VALUES (2, '2')
INSERT INTO #Numbers VALUES (3, '3')
INSERT INTO #Numbers VALUES (4, '4')
INSERT INTO #StringsNumbers VALUES (1, 1, 1)
INSERT INTO #StringsNumbers VALUES (2, 1, 2)
INSERT INTO #StringsNumbers VALUES (3, 1, 4)
INSERT INTO #StringsNumbers VALUES (4, 2, 4)
INSERT INTO #StringsNumbers VALUES (5, 3, 1)
INSERT INTO #StringsNumbers VALUES (6, 3, 3)
INSERT INTO #StringsNumbers VALUES (7, 3, 0)
INSERT INTO #StringsNumbers VALUES (8, 4, 4)
INSERT INTO #StringsNumbers VALUES (9, 4, 0)

SELECT #Strings.String
FROM   #StringsNumbers
       INNER JOIN #Numbers
            ON  #StringsNumbers.NumberID = #Numbers.ID
       INNER JOIN #Strings
            ON  #Strings.ID = #StringsNumbers.StringID
WHERE  #Numbers.Number = '4'
GROUP BY
       #Strings.String

DROP TABLE #Strings
DROP TABLE #Numbers
DROP TABLE #StringsNumbers
GO

...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37773823
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2-ой лучше. Первый -- нарушение 1НФ, ты не сможешь такие данные обрабатывать.
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37773844
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как тот факт, что
* домбазист будет потом "очень доволен" >х3 непонятным таблицам
* написание более сложных запросов (и вероятнее всего более тяжёлых)
* и, наверное, еще чего-то есть...

Не вижу никакой сложности в обработке и сохранении целостности (само собой при использовании ORM).
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37773987
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
однозначно второй.
нормальные формы придумали не от нечего делать, а потому что так лучше.
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37774011
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> однозначно второй.
> нормальные формы придумали не от нечего делать, а потому что так лучше.

Не потому, что так лучше, а потому что без них невозможно.
По-другому никак.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37774016
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheerful Calf* домбазист будет потом "очень доволен" >х3 непонятным таблицам
* написание более сложных запросов (и вероятнее всего более тяжёлых)


Я не понял ни в чём сложность 3х таблиц, ни при чём тут целостность.

Про сложные запросы -- напиши на 1-ый вариант структуры
запрос на получение всех записей (String у тебя), в которых нет
заданного значения в значениях (например, 3) -- и ты всё увидешь
сам.
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37774053
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivПро сложные запросы -- напиши на 1-ый вариант структуры
запрос на получение всех записей (String у тебя), в которых нет
заданного значения в значениях (например, 3) -- и ты всё увидешь
сам.Не понял?
Код: sql
1.
SELECT String FROM #Strings WHERE Numbers NOT LIKE N'%'+'3'+N'%'
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37774111
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 04/27/2012 02:09 PM, Cheerful Calf wrote:

> Не понял?
>
> SELECT StringFROM #StringsWHERE NumbersNOT LIKE N'%'+'3'+N'%'

Вот именно, что не понял.
А теперь замени в этой строке число 3 на число 33, и повтори.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37774129
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivА теперь замени в этой строке число 3 на число 33, и повтори.

А заодно подумай над планом исполнения, использованием индексов и прочими вещами, которыми
реальные базы отличаются от игрушечных.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37774982
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 04/27/2012 02:39 PM, Dimitry Sibiryakov wrote:

> MasterZiv
> А теперь замени в этой строке число 3 на число 33, и повтори.
>
>
> А заодно подумай над планом исполнения, использованием индексов и прочими
> вещами, которыми
> реальные базы отличаются от игрушечных.

Да, подумай, подумай !
Обязательно подумай !

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37775141
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv2-ой лучше . ...
S.G. однозначно второй.
нормальные формы придумали не от нечего делать, а потому что так лучше .
MasterZivSG> однозначно второй.
SG> нормальные формы придумали не от нечего делать, а потому что так лучше.

Не потому, что так лучше , а потому что без них невозможно.
По-другому никак.


:)
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37775169
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

да фигня все твои индексы и т.д.
для детских задач катят
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37775553
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
CREATE TABLE #StringsNumbers (
	ID INT,
	String NVARCHAR(32),
              Number NVARCHAR(32)
)


не? ID INT - нафиг не сдался.... по моему, ну дак ведь и не дорого....
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37775602
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosDimitry Sibiryakov,

да фигня все твои индексы и т.д.
для детских задач катят
Вам не кажется, что мнение недалеких мышеводов, нечего не понимающих в базах данных, при проектировании баз данных никого не интересует?
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37775620
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivOn 04/27/2012 02:39 PM, Dimitry Sibiryakov wrote:

> MasterZiv
> А теперь замени в этой строке число 3 на число 33, и повтори.
>
>
> А заодно подумай над планом исполнения, использованием индексов и прочими
> вещами, которыми
> реальные базы отличаются от игрушечных.

Да, подумай, подумай !
Обязательно подумай !Как насчет арея из праймерикейсов?
Стринг: Стринг1
Нумберз: [1][3][33]

упомянутая проблема решена? это мелочи реализации, я спрашиваю про подход.
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37775628
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivпланом исполнения, использованием индексов и прочимиЯ в первом топике указал количество записей, на данный момент это около 700 (предельный рост до 1000)
какие "план исполнения, использование индексов" и прочее? тут даже профайлер врят ли разницу заметит между постраничным сканом и индексом.
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37775649
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> упомянутая проблема решена? это мелочи реализации, я спрашиваю про подход.

нет. Подход любого проектирования реляционной БД дожен строится прежде
всего на нормльных формах. Это не какие-то там заумные идеи, это просто
требование выживания. Без них тебе реляционная СУБД будет бесполезна.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37775651
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheerful CalfЯ в первом топике указал количество записей, на данный момент это около 700 (предельный рост до 1000)
какие "план исполнения, использование индексов" и прочее? тут даже профайлер врят ли разницу заметит между постраничным сканом и индексом.А зачем вообще в таком случае СУБД? Тем более реляционная?
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37775652
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 04/28/2012 12:27 PM, Cheerful Calf wrote:

> MasterZiv
> планом исполнения, использованием индексов и прочими
>

Эт не я писал. Эт маэстро Dimitry Sibiryakov.

> Я в первом топике указал количество записей, на данный момент это около 700
> (предельный рост до 1000)
> какие "план исполнения, использование индексов" и прочее? тут даже профайлер
> врят ли разницу заметит между постраничным сканом и индексом.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37775655
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvViPRosDimitry Sibiryakov,

да фигня все твои индексы и т.д.
для детских задач катят
Вам не кажется, что мнение недалеких мышеводов, нечего не понимающих в базах данных, при проектировании баз данных никого не интересует?
Вам не кажеться, что следует отличать иронию специалистов от мнения недалеких мышеводов?
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37775660
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv, Bogdanov Andrey,

в соседнем топике отписал, это имеено то, что я там указал - поле для поиска (по атрибутам).
субд - она остаётся субд со всеми нф.
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37775690
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheerful Calfв соседнем топике отписал, это имеено то, что я там указал - поле для поиска (по атрибутам).
субд - она остаётся субд со всеми нф.
Вы на вопрос "зачем вы используете РСУБД" способны ответить? Какими именно преимуществами РУСБД вы пользуетесь? Целостность вам не нужна, скорость поиска тоже.
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37775697
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyCheerful Calfв соседнем топике отписал, это имеено то, что я там указал - поле для поиска (по атрибутам).
субд - она остаётся субд со всеми нф.
Вы на вопрос "зачем вы используете РСУБД" способны ответить? Какими именно преимуществами РУСБД вы пользуетесь? Целостность вам не нужна, скорость поиска тоже.Вы тут сами с собой? Смотрю вопрос, ответ сразу пишите...
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37775712
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheerful CalfВы тут сами с собой?Понятно. То есть ответить на вопрос не можете. Спасибо за "содержательную" беседу.
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37776047
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый вариант хуже, потому что поле неатомарно. Потому, что архитектура плохо масштабируется. потому, что ассиметрия...
Второй вариант хуже - лазить в лишнюю таблицу. оба варианта, в старт-посте представленные, по моему - хуже.

Моего варианта, где и поля атомарны=>SQL - "чистый" пригодный для автогенерации, и таблиц лишних нет. Симметрия полная - хочешь с одной стороны к другой, а хочешь - наоборот...
...
Рейтинг: 0 / 0
25 сообщений из 87, страница 1 из 4
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как хранить атрибуты?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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