Заманчивая идея обернуть БД в интерфейс, удобный именно вам. Сколько проектов, столько велосипедов.
...
А разработчику не очень важно знать, как именно организована структура хранения данных на уровне SQL (структура для хранения данных реализована в виде самих данных, реализована стандартными средствами СУБД или смешана). Он оперирует понятиями объект-атрибут. Предметную область в этом случае можно представить графом. Помимо стандартных характеристик объекта (атрибуты (информация), связи) у терминологического поля имеются:
1. можно организовывать не только связи, но и взаимодействия (триггеры);
2. маршруты графа (замкнутые, незамкнутые, часто меняются);
3. отказ от необходимости знать, как выглядят SQL-таблицы на самом деле;
4. методы (добавить пользователя, отправка письма по почте, а в другой объект что-то добавить).
Объектная модель
Объектная модель должна позволять выбрать множество A по известным параметрам B: A(B). Вот несколько практических примеров:
* список пользователей, у которых возраст > 20: user(user.age>20);
* список подарков у пользователей с возрастом более 20: gifts(user.age>20).
В чем особенность этой модели? Разработчику необязательно знать, как связаны объекты «Пользователь» и «Подарок». Ему достаточно описать требуемую бизнес-логику в каком-то виде (API, предоставляемый системой), а сервер сам построит необходимые связи и выдаст нужный результат.
...
Для реализации такой модели создается так называемый объектный сервер. Это самостоятельно приложение, которое имеет некоторые интерфейсы для взаимодействия с другими приложениями. Объектный сервер знает о своих компонентах и сам определяет, какую именно у него запросили информацию. Клиентское же приложение, в котором разработчик описывает свои запросы к базе, не знает структуру базы, но имеет механизмы, которые позволяют запрашивать требуемую информацию у объектного сервера.
...
habrahabr.ru/blogs/webdev/71279
Сцылки дня:
Письма президенту
Tools
Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.
2009-10-10
Прослойка
Posted by Valentin at 03:40
Labels: DBMS, frameworks
Подписаться на:
Комментарии к сообщению (Atom)
Архив блога
-
▼
2009
(365)
-
▼
октября
(28)
- Потому что в кузнице не было гвоздя
- Запрет на дневной показ повысил популярность шоу
- Разные MTU и блокирование ICMP
- two weeks notice
- The following packages have been kept back
- Сразу видно, кто из ху
- 38 попугаев
- Поколение М
- LISP
- Разомни
- Adobe AIR 2.0
- Дорожное
- Wheel
- Телефон
- эмтиэс, паразитен
- Advanced Message Queueing Protocol
- buildout, not buildout
- Мосдума
- Быдлокодер?
- Прослойка
- Почему я не люблю верстку
- zcml
- Plone upgrade
- Вид поиска или подписка на новости по теме?
- jEdit
- Это мы, мышицы
- Plone viewlets, практика
- Как бы транзакции
-
▼
октября
(28)
Ярлыки
linux
(241)
python
(191)
citation
(186)
web-develop
(170)
gov.ru
(159)
video
(124)
бытовуха
(115)
sysadm
(100)
GIS
(97)
Zope(Plone)
(88)
бурчалки
(84)
Book
(83)
programming
(82)
грабли
(77)
Fun
(76)
development
(73)
windsurfing
(72)
Microsoft
(64)
hiload
(62)
internet provider
(57)
opensource
(57)
security
(57)
опыт
(55)
movie
(52)
Wisdom
(51)
ML
(47)
driving
(45)
hardware
(45)
language
(45)
money
(42)
JS
(41)
curse
(40)
bigdata
(39)
DBMS
(38)
ArcGIS
(34)
history
(31)
PDA
(30)
howto
(30)
holyday
(29)
Google
(27)
Oracle
(27)
tourism
(27)
virtbox
(27)
health
(26)
vacation
(24)
AI
(23)
Autodesk
(23)
SQL
(23)
humor
(23)
Java
(22)
knowledge
(22)
translate
(20)
CSS
(19)
cheatsheet
(19)
hack
(19)
Apache
(16)
Manager
(15)
web-browser
(15)
Никонов
(15)
Klaipeda
(14)
functional programming
(14)
happiness
(14)
music
(14)
todo
(14)
PHP
(13)
course
(13)
scala
(13)
weapon
(13)
HTTP. Apache
(12)
SSH
(12)
frameworks
(12)
hero
(12)
im
(12)
settings
(12)
HTML
(11)
SciTE
(11)
USA
(11)
crypto
(11)
game
(11)
map
(11)
HTTPD
(9)
ODF
(9)
Photo
(9)
купи/продай
(9)
benchmark
(8)
documentation
(8)
3D
(7)
CS
(7)
DNS
(7)
NoSQL
(7)
cloud
(7)
django
(7)
gun
(7)
matroska
(7)
telephony
(7)
Microsoft Office
(6)
VCS
(6)
bluetooth
(6)
pidgin
(6)
proxy
(6)
Donald Knuth
(5)
ETL
(5)
NVIDIA
(5)
Palanga
(5)
REST
(5)
bash
(5)
flash
(5)
keyboard
(5)
price
(5)
samba
(5)
CGI
(4)
LISP
(4)
RoR
(4)
cache
(4)
car
(4)
display
(4)
holywar
(4)
nginx
(4)
pistol
(4)
spark
(4)
xml
(4)
Лебедев
(4)
IDE
(3)
IE8
(3)
J2EE
(3)
NTFS
(3)
RDP
(3)
holiday
(3)
mount
(3)
Гоблин
(3)
кухня
(3)
урюк
(3)
AMQP
(2)
ERP
(2)
IE7
(2)
NAS
(2)
Naudoc
(2)
PDF
(2)
address
(2)
air
(2)
british
(2)
coffee
(2)
fitness
(2)
font
(2)
ftp
(2)
fuckup
(2)
messaging
(2)
notify
(2)
sharepoint
(2)
ssl/tls
(2)
stardict
(2)
tests
(2)
tunnel
(2)
udev
(2)
APT
(1)
CRUD
(1)
Canyonlands
(1)
Cyprus
(1)
DVDShrink
(1)
Jabber
(1)
K9Copy
(1)
Matlab
(1)
Portugal
(1)
VBA
(1)
WD My Book
(1)
autoit
(1)
bike
(1)
cannabis
(1)
chat
(1)
concurrent
(1)
dbf
(1)
ext4
(1)
idioten
(1)
join
(1)
krusader
(1)
license
(1)
life
(1)
migration
(1)
mindmap
(1)
navitel
(1)
pneumatic weapon
(1)
quiz
(1)
regexp
(1)
robot
(1)
science
(1)
serialization
(1)
spatial
(1)
tie
(1)
vim
(1)
Науру
(1)
крысы
(1)
налоги
(1)
пианино
(1)
Комментариев нет:
Отправить комментарий