Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > [SQlite] Создание дополнительных данных в таблице


Автор: suxxor 19.10.2010, 21:43
Можно ли в таблицу поместить какие-нибудь доп. данные?

Нужно создать БД в которой имена таблиц будут названы "Именем (любого) человека", в ней нужно создать два столбца (Дата поступления, Дата ухода)

Куда, в таком случае, можно поместить такую личную информацию о человеке как: Адрес, Номер телефона и т.д.

Автор: skyboy 19.10.2010, 21:57
Цитата(suxxor @  19.10.2010,  20:43 Найти цитируемый пост)
в которой имена таблиц будут названы "Именем (любого) человека"

не надо так делать.
просто не надо так делать. таблица "Человеки" будет содержать в себе информацию, уникальную для каждого конкретного человека: ФИО, адрес и прочие аттрибуты навроде номера телефона.
что, человек может несколько раз "поступать" и "уходить"? тогда надо ещё одну таблицу, в которой будет храниться связка "id человека из первой таблицы" + "дата поступления" + "дата ухода".
или "поступать/уйти" можно только единожды? тогда в первую же таблицу и заносится.
может, начать с задач попроще - когда есть уже какая-то структура и надо составить запрос?

Автор: suxxor 19.10.2010, 22:15
Цитата
...что, человек может несколько раз "поступать" и "уходить"?


Смотря куда! А вы куда подумали? Текст здесь только для примера!

Да, "приёмов"/"поступлений" over 9k

Цитата
...когда есть уже какая-то структура и надо составить запрос? 


структуры, пока, нет - есть только идея: реализовать эту БД в ОДНОМ файле (раньше делал по файлу на человека - была структура, а сейчас надо всё в одном файле реализовать - нет структуры)

Автор: skyboy 19.10.2010, 22:47
Цитата(suxxor @  19.10.2010,  21:15 Найти цитируемый пост)
Да, "приёмов"/"поступлений" over 9k

тогда две таблицы.
Цитата(suxxor @  19.10.2010,  21:15 Найти цитируемый пост)
Смотря куда! А вы куда подумали? Текст здесь только для примера!

сначала берется задача, а потом уже разрабатывается структура. а не наоборот.
если слова в формулировке "взяты для примера", то и структура получится "для примера".

Автор: suxxor 19.10.2010, 23:00
Цитата
тогда две таблицы.


А пример можно?!

Цитата
...если слова в формулировке "взяты для примера", то и структура получится "для примера". 


Этот набор букафф никакой роли не сыграет в построении БД. В примере и в реале используются даты, вопрос в том куда пихать доп. данные

Автор: skyboy 20.10.2010, 10:39
Цитата(suxxor @  19.10.2010,  22:00 Найти цитируемый пост)
А пример можно?!

Цитата(skyboy @  19.10.2010,  20:57 Найти цитируемый пост)
таблица "Человеки" будет содержать в себе информацию, уникальную для каждого конкретного человека: ФИО, адрес и прочие аттрибуты навроде номера телефона.

Цитата(skyboy @  19.10.2010,  20:57 Найти цитируемый пост)
ещё одну таблицу, в которой будет храниться связка "id человека из первой таблицы" + "дата поступления" + "дата ухода".

что именно не понятно?

Автор: suxxor 20.10.2010, 15:55
Цитата

что именно не понятно?


Да всё непонятно!

А можно пример этой базы и/или пример запроса sqlite3_exec как всё это сделать?

Автор: Zloxa 20.10.2010, 16:15
Цитата(suxxor @  20.10.2010,  15:55 Найти цитируемый пост)
Да всё непонятно!

http://segfault.kiev.ua/smart-questions-ru.html#explicit
Цитата(suxxor @  20.10.2010,  15:55 Найти цитируемый пост)
А можно пример этой базы

stfg http://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80+%D1%8D%D1%82%D0%BE%D0%B9+%D0%B1%D0%B0%D0%B7%D1%8B#sclient=psy&hl=ru&newwindow=1&q=%22%D1%8D%D1%82%D0%B0+%D0%B1%D0%B0%D0%B7%D0%B0%22+%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80&aq=f&aqi=&aql=&oq=&gs_rfai=&pbx=1&fp=dc068c22706d2ea7

Автор: suxxor 20.10.2010, 18:55
Я просто не понимаю что вы говорите! Об чёмЪ!

А именно не понимаю как сохранять http://forum.vingrad.ru/index.php?showtopic=312905&view=findpost&p=2232454 доп. данные

Автор: skyboy 21.10.2010, 00:03
как устроена БД понимаешь? База, таблица, запись, поле - что есть что в курсе?  если не в курсе - ищи учебник по SQL/Реляционным БД - это обычно в первой же главе описывается.
если да, то как запросом создать таблицу определенной структуры с полями определенного типа в курсе? если нет - ищи учебник по SQL и ищи описание конструкции CREATE TABLE.
если да, то каким запросом вставлять в таблицу данные(insert ...), обновлять имеющие записи(update ...), удалять записи(delete ...) в курсе? если нет - смотри соответствующие разделы в учебнике по SQL или на сайте sqlite.org(там сложнее разбираться - только справочник, не учебник; сухая информация без пояснений)
если да, то как работать с базой данных не напрямую запросами, а из программы на каком-то(каком? какой ты используешь?) языке программирования - в курсе? если нет - стоит обратиться к разделу справки/документации по соответствующему языку.
если же проблема не во всех тех возможных причинах, что я перечислил, то не мог бы ты вместо повторения "ничего не понимаю, объясните что-то, приведите пример не пойми чего" сказать "я могу сделать то-то и то-то; на таком-то этапе не знаю, что делать дальше и среди сказанного не понял, что означает такой-то термин". 
а то у меня ощущение, что ты попросту стебешься.

Автор: suxxor 21.10.2010, 16:18
Код

CREATE TABLE "%IdiotName%" ("DateIncoming", "DateOutcoming");
INSERT INTO "%IdiotName%" VALUES ("01.01.01", "10.01.01");
INSERT INTO "%IdiotName%" VALUES ("24.01.01", "29.01.01");


Я не понял куда/как сохранять Личные данные! Отдельную таблицу создавать?

Цитата

...а то у меня ощущение, что ты попросту стебешься. 


Конечно, заняццо жэ больщэ не чем

Автор: skyboy 21.10.2010, 16:24
таблиц ВСЕГО будет две. вне зависимости от количества человек в базе данных.

Автор: suxxor 21.10.2010, 16:28
Цитата

...ещё одну таблицу, в которой будет храниться связка "id человека из первой таблицы" + "дата поступления" + "дата ухода".


Как в этой таблице (№2) хранить данные? Это не понял

Автор: skyboy 21.10.2010, 22:32
таблица "Человеки"
id     FIO            address
1     "Конотопов А.А."  "Гагарина, 17"
2     "Епанин О.Н." "Сурикова, 22/45"

таблица "абстрактные даты"
id_of_men(совпадает с полем id из первой таблицы)  dateIncoming dateOutcoming
1 "17.11.2008" "18.12.2008"
1 "20.04.2006" "03.11.2007"
2 "13.11.2010"  NULL

Автор: suxxor 22.10.2010, 21:14
К примеру создал таблицу:

id     FIO            address
1     "1111"  "Гагарина, 17"
2     "2222"  "Гагарина, 17"
3     "3333"  "Гагарина, 17"
4     "4444"  "Гагарина, 17"
5     "5555"  "Гагарина, 17"
6     "6666"  "Гагарина, 17"

при удалении Записи где Id = 3, получится так:

1     "1111"  "Гагарина, 17"
2     "2222"  "Гагарина, 17"
3     "4444"  "Гагарина, 17"
4     "5555"  "Гагарина, 17"
5     "6666"  "Гагарина, 17"

???

И если так то придётся перезаписывать записи из второй таблицы?

Автор: skyboy 22.10.2010, 21:33
Цитата(suxxor @  22.10.2010,  20:14 Найти цитируемый пост)
при удалении Записи где Id = 3, получится так:

при удалении записи с id=3 получится так:
1     "1111"  "Гагарина, 17"
2     "2222"  "Гагарина, 17"
4     "4444"  "Гагарина, 17"
5     "5555"  "Гагарина, 17"
6     "6666"  "Гагарина, 17"
хоть бы попробовал  smile 

Автор: suxxor 23.10.2010, 12:38
А при добавлении новой записи, автоматически займётся номер ID = 3 ??

Автор: skyboy 24.10.2010, 00:24
нет. с чего взял? почему не попробовал?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)