Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Lost Cluster Гость
|
Добавлено: Пн Ноя 18 2002 07:36 Заголовок сообщения: Программирование реляционных баз данных |
|
|
Я в базах данных, относительно, новичок. Но мне интересно как программисты пишут большие (или не очень) проекты с использованием реляционных баз данных. Создают свои интерфейсы типа
|
|
| или
|
| . В первом случае, можно на интерфейс свалить проверку допустимости данных, слежку за внешними ключами, особенности размещения сущностей (когда один класс объектов реального мира хранится в нескольких таблицах), причем описание сущностей можно хранить независимо (например в XML). Вы наверное скажите – «Зачем все это? Ведь есть разные навороченные объектно-ориентированные СУБД». Дело в том что это Web-проект, и никакой хостер не дает мне в распоряжение что-то круче чем MySQL. Если кто-то нечто подобное уже делал, подскажите, может есть какие-то общераспространенные программные библиотеки, реализующие тот самый интерфейс. Изобретен велосипед? Или же, придется изобрести его самому?
Заранее благодарен. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Lost Cluster Гость
|
Добавлено: Вт Ноя 19 2002 08:28 Заголовок сообщения: Форум съел все что между < и > |
|
|
Я в базах данных, относительно, новичок. Но мне интересно как программисты пишут большие (или не очень) проекты с использованием реляционных баз данных. Создают свои интерфейсы типа {СУБД} | {SQL-команды} | {интерфейс} | {программа обрабатывающая команды пользователя> или {СУБД} | {SQL-команды} | {программа обрабатывающая команды пользователя и генерирующая SQL-команды, вперемешку}. В первом случае, можно на интерфейс свалить проверку допустимости данных, слежку за внешними ключами, особенности размещения сущностей (когда один класс объектов реального мира хранится в нескольких таблицах), причем описание сущностей можно хранить независимо (например в XML). Вы наверное скажите – «Зачем все это? Ведь есть разные навороченные объектно-ориентированные СУБД». Дело в том что это Web-проект, и никакой хостер не дает мне в распоряжение что-то круче чем MySQL. Если кто-то нечто подобное уже делал, подскажите, может есть какие-то общераспространенные программные библиотеки, реализующие тот самый интерфейс. Изобретен велосипед? Или же, придется изобрести его самому?
Заранее благодарен. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Борис Гость
|
Добавлено: Пт Ноя 22 2002 16:17 Заголовок сообщения: Re: Программирование реляционных баз данных |
|
|
Исходи с того, что MySQL работает по принципу всех программ в UNIX, а именно: программа (это MySQL), если она сама не открывает файлы с данными, обрабатывает данные входного потока и выводит результаты в выходной поток, а сообщения об ошибках -- в поток ошибок. Входной поток интерпретируется программой как текстовые строки-команды SQL, в выходной поток выводятся текстовые строки-результаты команд после выполнения. Если команда синаксически не правильна или в ней содержатся ошибочные данные, то в поток ошибок (обычно он совпадает с выходным потоком) выводятся сообщения об ошибках. Все остальное должна делать твоя программа(формирование текста команды и интерпретация результата и ошибок). То есть в твоей картинке ты можешь работать только по 2му варианту. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Lost Cluster Гость
|
Добавлено: Вс Ноя 24 2002 04:01 Заголовок сообщения: Re: Программирование реляционных баз данных |
|
|
Ты немножко неправильно меня понял. Допустимость данных в смысле самих данных, а не SQL запросов, например я знаю что такой e-mail адрес корректный lostclus@binet.com.ua , а такой нет lostclus.ua . В коммерческих СУБД можно использовать типы данных определенных пользователем (домены), в этом случаи проверку допустимости данных берет на себя СУБД. А интерфейс, про который я говорил, какбы расширяет возможности СУБД, он может предоставлять даже не реляционный способ взаимодействия с моей программой, такой какой необходим для решения моей конкретной задачи. Например в PHP: insert_entity($FLOWER, array('id'=>1, 'name'=>'Мексиканский кактус', 'type'=>34, 'needle_length'=>10)); $FLOWER - это некая структура описывающая как цветы хранятся в БД; 34 - означает кактус; 10 - длина иголки. В результате вызова функции в таблицу flowers(id int, name char(64), type int) добавляется запись ('Мексиканский кактус', 34) , а в таблицу kaktusi(id int, needle_length int) добавляется запись (1, 10). |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
|