За это время никто ничего серьезно и не предложил. Ниже предлагаю предварительную версию БД на обсуждение.
Код:
ER-диаграмма базы данных (структура БД)
_______________
| USER |
|-------------|
|USER_ID (PK) |1 создает
|USER_LOGIN |----------------
|USER_PSWD | запись |
|USER_REGDATE | |
|USER_LASTDATE| |M
|USER_COUNT | ____+_______
--------------- /PUBLIC_DATE
|------------|
|PD_ID (PK) |
запись о компонентах,1|PD_DATE |1 запись о
-------------------|USER_ID |-------------
|классах, типах |PD_TYPE | методах |
| |PD_TOPIC(FK)| |
| PD_DESCR / |
| ------------ |
| родитель 1| запись |
| -----------| ---о свойствах |
M| M| | M| |
______+__+_______ 1 | ______+_______ |
| COMPONENT |---| | PROPERTY | |
|---------------| |------------| |
|COMP_ID (PK) |компонент |PROP_ID (PK)| |
|COMP_NAME |содержит |PROP_NAME | |
|COMP_TYPE |---------+|PROP_TYPE | |
|COMP_PARENT(FK)|свойтво |COMP_ID (FK)| |
----------------- -------------- |
|1 |
| |
| |M
| ______+_______
| | METHOD |
| |------------|
| |MTD_ID (PK) |
| компонент содержит метод M|MTD_NAME |
-------------------------------------+|MTD_ROUT_T |
|MTD_TYPE |
|COMP_ID (FK)|
--------------
USER - таблица регистрированных пользователей
PUBLIC_DATE - составная таблица между таблицей USER и
таблицами COMPONENT,PROPERTY,METHOD
COMPONENT - таблица компонентов
PROPERTY - таблица свойств объекта
METHOD - таблица методов объекта
(PK) - означает первичный ключ таблицы (Primary key)
(FK) - означает внешний ключ (Foreign key)
------------------------------------------------------------
Все вставляемые данные будут храниться в таблице PUBLIC_DATE.
Это позволит вставлять в описание одного и того же класса, свойства,
метода множества описаний,добавлений, изменений. К тому же эта таблица
ведет учет по дате и времени кто, когда и что добавлял. Программа
находит все записи относящиеся к требуемому объекту и выводит их в одном окне
с указанием автора (если необходимо и даты добавления) информации.
Поле COMP_PARENT в таблице COMPONENT ссылается на COMP_ID своей же таблицы, указывая
тем самым на родительский класс.
ПОле PD_TYPE в таблице PUBLIC_DATE может иметь значения COMPONENT,PROPERTY,METHOD.
Определяя таблицу, к которой надо обращаться. Ссылка хранится в поле PD_TOPIC.
Этим исключается пустые поля, если б хранили 3 внешних ключа. К тому же могут
добавиться и другие описательные таблицы, например события (EVENT). Тогда в домен
значений поля PD_TYPE добавим всего одно значение EVENT и функцию обработки этого
значения в скрипт. (Кстати, я на самом деле забыл про таблицу EVENT)
---------------------------------------------------------------------------------
Буду рад выслушать все замечания, предложения и пожелания

)