подскажите в написании простой Базы Данных на С++

Автор DDt, 13 Жовтень 2007, 20:14:24

Попередня тема - Наступна тема

DDt

Собсно задача:
необходимо написать простую Базу данных на С++. БД должна быть в консольном варианте, содержание - прайслист компьютерного магазина.
Подскажите с чего начать и как легче написать  :-[
Не стучись в дверь к смерти, лучше позвони и убеги ...... смерть это бесит

βεερ_βooρ

Цитата: DDt від 13 Жовтень 2007, 20:14:24
Собсно задача:
необходимо написать простую Базу данных на С++. БД должна быть в консольном варианте, содержание - прайслист компьютерного магазина.
Лабораторка/курсовая?
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?

DDt

Цитата: beep_boop від 13 Жовтень 2007, 20:22:27
Лабораторка/курсовая?
лаба, но самому интересно это задание, просто хочу написать сам, а не покупать у старшаков, вот и спрашиваю совета с чего начать ;)
Не стучись в дверь к смерти, лучше позвони и убеги ...... смерть это бесит

βεερ_βooρ

Цитата: DDt від 13 Жовтень 2007, 20:31:29
лаба, но самому интересно это задание, просто хочу написать сам, а не покупать у старшаков, вот и спрашиваю совета с чего начать ;)
Собсно чего спрашивал - для тестирования на адекватность(а то просто так с бухты-барахты писать БД, без особых причин - повод для вызова спецскорой, с санитарами и смирительными рубашками :))
Цитата: DDt від 13 Жовтень 2007, 20:14:24
содержание - прайслист компьютерного магазина.
Какая конкретно информация должна хранится в БД? (товар/цена/к-во/и т.д.)
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?

DDt

Цитата: beep_boop від 13 Жовтень 2007, 20:38:33
Какая конкретно информация должна хранится в БД? (товар/цена/к-во/и т.д.)
угу,(товар/цена/к-во/и т.д.)
Планирую чтоб всё выглядело так: запускается консольное окно, в нём несколько вариантов действий в виде нумерованого списка (просмотр товаров, добавление товаров, удаление, выход). Допустим выбираем пункт №1 "просмотр товаров", открывается список (типа как под Дос команда dir): 1)мониторы, 2)процессоры, 3)HDD, 4)видеокарты, 5)мат. платы и т.д. Выбираем пункт 2 -> открывается следующие подменю "сокеты" 478,754,939,775 и т.д Ну и в таком духе.
Просто после небольшого поиска в нете наткнулся на такую особенность БД как ODBC (Open Database Connectivity), а это ,как я понял, если я буду писать программу мне надо либо создавать свой собственный формат БД и драйвер для него, либо каким то образом связать свою программу и драйвер БД допустим для Экселя или Аксесса. Для меня это сложно  :-[ .... чем проще тем лучше  :)
Не стучись в дверь к смерти, лучше позвони и убеги ...... смерть это бесит

βεερ_βooρ

Цитата: DDt від 13 Жовтень 2007, 20:59:51
угу,(товар/цена/к-во/и т.д.)
Планирую чтоб всё выглядело так: запускается консольное окно, в нём несколько вариантов действий в виде нумерованого списка (просмотр товаров, добавление товаров, удаление, выход). Допустим выбираем пункт №1 "просмотр товаров", открывается список (типа как под Дос команда dir): 1)мониторы, 2)процессоры, 3)HDD, 4)видеокарты, 5)мат. платы и т.д. Выбираем пункт 2 -> открывается следующие подменю "сокеты" 478,754,939,775 и т.д Ну и в таком духе.
Сам такое делал в первом семестре.
Храни БД в текстовом файле формата record-jar, при запуске считывай в список, выполняй необходимые манипуляции с элементами списка, потом по необходимости записывай на диск.

Цитата: DDt від 13 Жовтень 2007, 20:59:51
Просто после небольшого поиска в нете наткнулся на такую особенность БД как ODBC (Open Database Connectivity), а это ,как я понял, если я буду писать программу мне надо либо создавать свой собственный формат БД и драйвер для него, либо каким то образом связать свою программу и драйвер БД допустим для Экселя или Аксесса. Для меня это сложно  :-[ .... чем проще тем лучше  :)
Для ODBC в данном случае есть чудесные курсы по адресу Фрунзе,103 в здании городской психбольницы :-D В данном случае ODBC - маленько не то, маленько не туда.
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?

Fenix

Если это надо на С++ писать то это пара массивов пишущихся в файл, я лично предложил бы трех мерные. А если по серьезному то все что нада сделать это поставить MySQL или SQL или вариант из пушки по воробьям Oracle и сбацать интерфейс на С++.

βεερ_βooρ

Цитата: Fenix від 14 Жовтень 2007, 01:44:41
Если это надо на С++ писать то это пара массивов пишущихся в файл, я лично предложил бы трех мерные.
Ну и как ты в таком варианте(3D) массив планируешь хранить данные? 
Цитата: Fenix від 14 Жовтень 2007, 01:44:41
или вариант из пушки по воробьям Oracle и сбацать интерфейс на С++.
Бу-га-га. *истерический смех в зале* Задача, достойная по масштабам Oracle!
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?

Fenix

Цитата: beep_boop від 14 Жовтень 2007, 01:58:48
Ну и как ты в таком варианте(3D) массив планируешь хранить данные?

Очень просто, как  в обычном массиве только каждая новая таблица уходит вглубь куба, примитивная альтернатива примитивным ключам  ;)

Цитата: beep_boop від 14 Жовтень 2007, 01:58:48
Бу-га-га. *истерический смех в зале* Задача, достойная по масштабам Oracle!

Ну так дык я же сказал что вариант из пушки по воробьям  :D

βεερ_βooρ

Цитата: Fenix від 14 Жовтень 2007, 11:36:30
Очень просто, как  в обычном массиве только каждая новая таблица уходит вглубь куба, примитивная альтернатива примитивным ключам  ;)
Что-то я вас не понимаю...
У меня есть 10 записей вида товар/цена/к-во
Как вы их расположите в своем кубе?
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?

linuxdrom

Цитата: beep_boop від 14 Жовтень 2007, 01:58:48
  Бу-га-га. *истерический смех в зале* Задача, достойная по масштабам Oracle!
+1. Спасибо посмеялся  :D

Цитата: Fenix від 14 Жовтень 2007, 11:36:30
Очень просто, как  в обычном массиве только каждая новая таблица уходит вглубь куба, примитивная альтернатива примитивным ключам  ;)
Цитата: beep_boop від 14 Жовтень 2007, 15:14:56
Что-то я вас не понимаю...
+1 к beep_boop. Или я тоже чего-то не понимаю, или это просто двухмерная таблица с лишними координатами.

Fenix

Смотря сколько у тебя таблиц, если одна то в трех мерном массиве нет нужды, а вот если надо связать 3-4 таблицы через определенные поля то можно построить трех мерный вариант.
Для большего понимания привожу рисунок.

βεερ_βooρ

Цитата: Fenix від 14 Жовтень 2007, 19:26:36
Смотря сколько у тебя таблиц, если одна то в трех мерном массиве нет нужды,
Автор написал:
Цитата: DDt від 13 Жовтень 2007, 20:59:51
угу,(товар/цена/к-во/и т.д.)
Планирую чтоб всё выглядело так: запускается консольное окно, в нём несколько вариантов действий в виде нумерованого списка (просмотр товаров, добавление товаров, удаление, выход). Допустим выбираем пункт №1 "просмотр товаров", открывается список (типа как под Дос команда dir): 1)мониторы, 2)процессоры, 3)HDD, 4)видеокарты, 5)мат. платы и т.д. Выбираем пункт 2 -> открывается следующие подменю "сокеты" 478,754,939,775 и т.д Ну и в таком духе.
Цитата: DDt від 13 Жовтень 2007, 20:59:51
.... чем проще тем лучше  :)
Тут и одной таблицы хватит с головой, а ты предлагаешь сделать какой-то изврат
Цитата: DDt від 13 Жовтень 2007, 20:59:51
а вот если надо связать 3-4 таблицы через определенные поля то можно построить трех мерный вариант.
После чего иметь головную боль с динамическим увеличением 3-х мерной таблицы. Со списками намного проще, удобнее и прозрачнее
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?