Дырки, и их заполнение...
1) В базе данных бывают таблицы, в них - поля и записи
2) В предметной области объеты, а у них - атрибуты
3) у атрибутов есть объект-хозяин, наименование, значение (значение всегда хранится строкой, длина которой строго фиксирована в пределах БД)
СИТУАЦИЯ
Есть множество объектов предметной области.
Каждый из них описан таблицей, каждой таблице (а значит и объекту) присвоен номер
- ИД типа объекта.
У объектов одного типа может быть заранее неопределенное число атрибутов.
С одним типом объекта работает только один программный обработчик - он точно знает номер типа объекта.
ТАБЛИЦЫ
tAttribute
id Integer Autoincrement
idOwnerType Integer
idAttrName Integer --> tAttrName.id
idAttrValue Integer --> tAttrValue.id
tAttrName
id Integer Autoincrement
id idOwnerType Integer
Name varchar(100)
tAttrValue
id Integer Autoincrement
Value varchar(100)
В конечном варианте система будет засунута в крайне примитивную СУБД - она не поддерживает внешних ключей, например, поэтому делать все надо ручками.
ПРОБЛЕМА
Пользователь выбирает для работы экземпляр объекта,
- ему нужно показать полный! список наименований атрибутов,
зарегистрированных для этого типа объекта.
Кроме того,... в том же списке второй колонкой нужно вывести значения этих атрибутов
(но только там где они заданы, т.е. содержаться соответствующие записи в таблице tAttribute и tAttrValue,
а где таковых нету - там пустую строку, чтоли, нужно вывести)
Т.Е. ТИПА
"Наименование организации" "ЧП Вася Пупкин" <- Знаем
"ИНН" "" <- Не знаем
"Телефон" "45-65-89" <- Знаем
В таблицах тада должны быть записи (таблица про сами организации здесь не при чем, там ничего не должно быть, у нее номер типа объекта 1)
tAttribute
1, 1, 1, 1;
2, 1, 3, 2;
tAttrName
1, 1, "Наименование организации";
2, 1, "ИНН";
3, 1, "Телефон";
tAttrValue
1, "ЧП Вася Пупкин";
2, "45-65-89";
Вот такая трабла,... Помогите пожалуйста люди добрые о)
[ Это Сообщение было отредактировано MrPhantom в 2001-12-16 2022 ]
Ситуацию я правда уже порешил... правда довольно криво (прямее может ваще и не сделат) - из результатов двух запросов программно сливаем данные прямо в форму.
В принципе работает,.. но все-таки хочется делать это одним запросом, ибо тема-то занятная, да и результат выглядит вкусно :о)
Вощем, если кто сообразит как ето сделать - я мыслю местным обитателям будет весьма пользительно