Автор Тема: Сделать одну таблицу или несколько?  (Прочитано 9888 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Serych

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Сделать одну таблицу или несколько?
« Ответ #15 : 03 Мая 2004, 12:43:49 »
Вот ещё поясню, какая БД будет.
Пока есть 35 характеристик телевизора.
Условно я могу разделить их на 5 таблиц по 7 характеристик в каждой. Например:

таблица 1 (электричество)
1) Напряжение: 220В
2) Ток: 1А
..
7) Частота тока: 50Гц

таблица 2 (звук)
1) Стерео
2) Долби
..
7) Автоматическая громкость

..

таблица 7 (входы)
1) Аудио
2) Видео
..
7) Антенна

Как можно видеть значения полей характеристик телевизора могут принимать значение "да" или "нет" - есть такая функция у телевизора или её нет. При выводе это будет "+" или "-"
Дальше я буду выводить на одной странице например 50 моделей телевизоров.

AIWA + + + - + - ... -
SONY + -  + + - - ... +

Таблицы будут модифицироватся, т.к. пока есть 35 характеристик, разумеется, что-то будет добавляться/удаляться в процессе развития базы данных. Вот с учётом сказанного делать всё через одну таблицу или через 5 таблиц? Насколько упадёт производительность?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Сделать одну таблицу или несколько?
« Ответ #16 : 03 Мая 2004, 13:01:55 »
прежде, чем задаваться вопросом - насколько упадет производительность, сначала надо задаться вопросом, а зачем вообще делить таблицы? Какой в этом смысл?

Выносить характеристику в отдельную таблицу имеет смысл только тогда, когда характеристика выбирается из набора.
О чем и пишет коммандер, не понимая сути вопроса.
проще надо быть, отвечая на вопросы на форуме. не судить по себе

Оффлайн Serych

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Сделать одну таблицу или несколько?
« Ответ #17 : 03 Мая 2004, 13:15:18 »
Смысл деления такой - наглядность, понимаемость, простота, удобство. Разумеется, что у меня будет поиск на сайте по характеристикам, поэтому она будет выбираться из набора. То есть например кому-то надо будет посмотреть все телевизоры со "стерео", он нажмёт на ссылку на сайте и ему выведутся все телевизоры со "стерео".

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Сделать одну таблицу или несколько?
« Ответ #18 : 03 Мая 2004, 13:54:25 »
не вижу наглядности, понимаемости, простоты, удобства в делении таблицы характеристик на мелкие.
неудобства - вижу. Усложнение запросов.

Цитировать
Serych:
Разумеется, что у меня будет поиск на сайте по характеристикам, поэтому она будет выбираться из набора. То есть например кому-то надо будет посмотреть все телевизоры со "стерео", он нажмёт на ссылку на сайте и ему выведутся все телевизоры со "стерео".

это пример удобства?
а почем он противопроставляется одной таблице? из одной нельзя выбрать стерео?
или к чему этоб было?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Сделать одну таблицу или несколько?
« Ответ #19 : 03 Мая 2004, 13:56:10 »
простота и наглядность в том, что вместо 10 таблиц в базе будет 50?
удобство в том, что вместо унификации поиска по параметру, надо городи ть кучу условий, определяя - из какой таблицы искать?

Оффлайн Serych

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Сделать одну таблицу или несколько?
« Ответ #20 : 03 Мая 2004, 14:09:38 »
В данном случае вместо 1 большой будет 5 маленькиих. Ок стал потихоньку склоняться к 1 таблице. Но мне интересно действительно ли при создании профессиональных продуктов все делается через 1 таблицу, без разбиения?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Сделать одну таблицу или несколько?
« Ответ #21 : 03 Мая 2004, 14:17:08 »
нет, не все.
однако критерий создания структуры - это связи между данными.
а не раскладывание рюшечек к рюшечкам, а бантиков к бантикам.

базахранитДАННЫЕ. абстрактные.
и связи между ними.
и поскольку база не различает втои критерии, то и ты не должен.
для базы твои критерии- абстрактное поле.
если есть причина вынести абстрактное в другую- выноси.
Если просо для красоты  - то тебе надо было в дизайнеры идти, а не в программисты.

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
Сделать одну таблицу или несколько?
« Ответ #22 : 03 Мая 2004, 15:42:40 »
Serych
create table tv
(
tv_id serial,
model varchar(255),
antena int4,
napriagenie int4,
sound int4,
vixodi int4,
...........
opisanie text,
CONSTRAINT tv_pk PRIMARY KEY (tv_id)
);

create table antena
(
id serial,
name varchar(255),
opisanie text,
.............
CONSTRAINT antena_pk PRIMARY KEY (id)
);

create table napriagenie
(
id serial,
name varchar(255),
opisanie text,
.............
CONSTRAINT napriagenie_pk PRIMARY KEY (id)
);

create table sound
(
id serial,
name varchar(255),
opisanie text,
.............
CONSTRAINT sound_pk PRIMARY KEY (id)
);

create table vixodi
(
id serial,
name varchar(255),
opisanie text,
.............
CONSTRAINT vixodi_pk PRIMARY KEY (id)
);

При такой структуре БД ты можешь иметь не только +/- на против какого-то параметра а набор параметров с четким описанием каждого параметра... но вопрос в том - "НУЖНО ЛИ ТЕБЕ ЭТО?" конечно с одной таблицей (NULL/NOT NULL) оперировать намного проще, если тебе этого достаточно то не забивай себе голову лишними заморочками... если же нет используй структуру подобную вышеописанной...


RomikChef
Слишком много слов.... софистические наклонности это безусловно хорошо, но ты ими только запутываешь человека, не отвечая на поставленный вопрос...
And no religion too...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Сделать одну таблицу или несколько?
« Ответ #23 : 03 Мая 2004, 16:04:38 »
[off]
Вообще-то, кто-то не заметил, что поставленный вопрос вообще не имеет смысла.

Вы правда, все странные.
в судите людей по себе. и то, что вопрос бессмысленный- просто не приходит вам в голову.
и вы начинаете ДОГАДЫВАТЬСЯ.
Твой ответ - безусловно,правильный.
вот только к вопросу он не имеет никакого отношения.
чувак не про словари спрашивал.
[/off]

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
Сделать одну таблицу или несколько?
« Ответ #24 : 03 Мая 2004, 16:08:41 »
RomikChef
ладно оставим это... :)
а то сейчас во флейм передем...:)
And no religion too...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Сделать одну таблицу или несколько?
« Ответ #25 : 03 Мая 2004, 16:31:48 »
ты просто стремишься дть обязательно дать практический ответ.
а я считаю, что если человек не понял теорию, то практику ему отвечать бесполезно.
а ты это софистикой счтаешь.
вот уж чем НИКОГДА не занимался.

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
Сделать одну таблицу или несколько?
« Ответ #26 : 03 Мая 2004, 17:10:55 »
Цитировать
если человек не понял теорию, то практику ему отвечать бесполезно.

Ну это не совсем так... на голой теории далеко не уедешь...
Я стараюсь дать несколько вариантов решения проблеммы, более того не решаю проблемму за человека, а всего лишь показаваю дверь... открыть которую он должен открыть сам...
And no religion too...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Сделать одну таблицу или несколько?
« Ответ #27 : 03 Мая 2004, 18:59:19 »
начнем с того, что дверь ты открыл туда, куда вообще не просили.
с тем же успехом ты мог написать о любом совершенно аспекте баз данных

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
Сделать одну таблицу или несколько?
« Ответ #28 : 03 Мая 2004, 19:19:05 »
RomikChef
Ладно ещё раз призываю давай оставим полемику по этому вопросу... мы уже начинаем переходить на личности... а это не относить к этому топику... если хочешь поприператься создай во флэйме топик "Что я думаю о commander_e..." вот там и поприпераемся... :)
And no religion too...

 

Sitemap 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