Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 17:51 04.07.25 
Компютри и Интернет
   >> Програмисти
*Кратък преглед

Страници по тази тема: 1 | 2 | (покажи всички)
Тема Зов за идея :снови  
АвторSure (Нерегистриран)
Публикувано15.08.05 21:46



Опитвам се значи да пиша нещо като проста машина за 'плоски' бази данни , но се чудя как точно да имплементирам нещата така че да имам възможност за динамично създаване и редактиране на таблици, имена на полета , тип данни и т.н.
Засега ползвам следната схема :

//Имам структура представляваща таблицата 

struct _record
{
char first_name[64];
unsigned age;
unsigned char blob_picture[256*256];
.....
};
// ползвам STL за манипулациите, нещата се пишат и четат от двоичен файл.
std::list<_record*> DB;
std::list<_record*> DBFiltered;
std::list<_record*>::iterator DBIter;
.....
//хедър в началото на файла
struct _header
{
char file_name [512]; //the database file name and path
char table_name[32]; //the database/table name
char field_names[1024]; //names are separated with ','
unsigned int field_count;
unsigned int record_count;
unsigned long sizeof_record; //размер на записите
......

};

Дотук добре..работи , има и елементарен SQL. Но взех да си задавам въпроса, какъв би бил най-елегантния начин да се избавя от тази статична структура/запис ?
Имам предвид какво би станало ако цялото това нещо отиде в .dll , как юзера
ще може да си проектира собствени таблици с различни типове данни, брой и размер на полетата и съответно размер на записа ? Иначе казано има ли начин
подобно изпълнение да се направи да работи с указани от юзера структури(или например войд указатели каствани до тях...хрмз...) ?

Съвети, идеи,порицания и похвали са добре дошли !



Тема Re: Зов за идея :снови [re: Sure]  
Авторeaz (Нерегистриран)
Публикувано15.08.05 22:16



Толкова ли не можа да намериш DB библиотека с подходящ лиценз та се налага сам да откриваш топлата вода?



Тема Re: Зов за идея :снови [re: Sure]  
Автор бaт Koлю (галфон)
Публикувано15.08.05 22:35



Какво става като имаш примерно:

ALTER TABLE table_name
ADD new_column VARCHAR(20)

Трябва да re-create-неш цялата структура и да пресипеш всичко. Би могло примерно да са 2 файл-а. Единия със структурата на таблицата и поле, което сочи някакъв offset в другия файл, където всъщност са данните.



Тема Re: Зов за идея :снови [re: Sure]  
Авторzzz (Нерегистриран)
Публикувано16.08.05 02:53



Пишеш бази данни на C++ ?!?? Човеко, ти или си прекален ентусиаст или... както и да е... Успех, все пак!



Тема Re: Зов за идея :снови [re: zzz]  
Авторtux (Нерегистриран)
Публикувано16.08.05 09:01



Oracle i MS на basic ли си пишат БД?



Тема Re: Зов за идея :снови [re: Sure]  
Авторtux (Нерегистриран)
Публикувано16.08.05 09:12



че кой те кара да използваш запис за записите?
опитай се да имплементираш самата БД а не конкретна БД.
може да са списък от колони, примерно.

освен това, не винаги алгоритъм който е добър
за паметта е подходящ и за файлове...

освен това ако не е упражнение по програмиране,
по-добре прочети какво са измислили хората. не
ми се вярва да откриеш нещо революционно :)



Тема Re: Зов за идея :снови [re: Sure]  
АвторPaдo (Нерегистриран)
Публикувано16.08.05 09:13



Не може да не знаеш за това -





Тема Re: Зов за идея :снови [re: Sure]  
АвторVeso (Нерегистриран)
Публикувано16.08.05 09:34



Хммм, странна идея. Но би ли ми казал какъв е мотива да да го правиш ?
- Не искаш да да се обвързваш с конкретна БД и да дистрибутираш
драйверите за нея?
- Колко записа очакваш приблизително да има в БД ?
- Какво време за отговор от заявка очакваш ?
- Колко потребителя ще работят с БД ?
- Колко често ще се добавят/премахват колони в БД ?
- Др. мотиви

Ако трябваше да правя подобно нещо бих разделил всеки файл от БД на 2 части - единия ще съдържа структурата на файла- полета, тип, дължина, а другия ще съдържа самите данни. По този начин избягваш твърдо кодираните структури за всеки файл от БД. Правиш клас, който първо чете структурата на файла и динамично заделя памет за всяко поле.
И според мен, ако не е наложително по добре е данните да не се пазят в двоичен вид, освен, ако не гониш някаква върхова производителност. А и по лесно ще се добавят/премахват колони. Двоичните данни, ако не са много може да съхраняват в др. файл.
Това са предварителни расъждения. Предполагам, че има и по добри идеи.



Тема Re: Зов за идея :снови [re: Sure]  
АвторGLupo (Нерегистриран)
Публикувано16.08.05 17:10



Виж тази книга ако искаш:
(адрес на "Teach Yourself Database Programming with Visual C++ 6 in 21 days" .pdf)

http://www.google.com/url?sa=t&ct=res&cd=27&url=http%3A//2p.ru/library/BOOK/
ENGLISH/THEMES/CPP/Teach-Yourself-Database-Programming-with-Visual-C%2B%
2B-in-21-Days-www.itlibitum.ru.pdf&ei=nOYBQ-emFrrc4QGDkrAz

(горните три реда ги направи на един ред обаче! нарочно съм разделил адреса на части за да не развалям изгледа на форума)
В .pdf книгата я има и по българските фриита но е дефектна! Тази съм я търсил 3 часа по нета докато я открия, така че по-добре си я дръпни.

Има и онлайн вариант:



Както и zip архив на HTML формат




Тема Re: Зов за идея :с [re: GLupo]  
Автор Bezbojnika (/( . )( . )\)
Публикувано16.08.05 18:13



С тая книга определено ще успее, няма ли някоя за 15 мин та да може за 2 часа да се кандидатства за 2 бомбона заплата.

Adolph Hitler is still alive I slept with her last night.



Страници по тази тема: 1 | 2 | (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.