|
|
|
Интересная связь в БД
|
|||
|---|---|---|---|
|
#18+
Приветствую всех форумчан. Имеем несколько таблиц: читатели, студенты, сотрудники, другие. В таблице читатели есть № читательского билета и читателем могут быть сотрудники, студенты и другие читатели. У всех этих типов читателей отдельные таблицы. Как связать это все воедино? От куда и куда должен идти внешний ключ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 14:35 |
|
||
|
Интересная связь в БД
|
|||
|---|---|---|---|
|
#18+
Ну сделай таблицу связей... Разве ФИО не достаточно, для определения принадлежности документа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 14:40 |
|
||
|
Интересная связь в БД
|
|||
|---|---|---|---|
|
#18+
Почитайте это: http://www.orm.net/pdf/Subtype.pdf http://www.idi.ntnu.no/~heggland/cv/ForeignSuperkeys.pdf Далее, по ключевым словам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 14:58 |
|
||
|
Интересная связь в БД
|
|||
|---|---|---|---|
|
#18+
Создаю таблицы в ORACLE: create table chits ( chit varchar2(5) PRIMARY KEY, t char(1) NOT NULL, join_date date, CONSTRAINT tpk UNIQUE (t) ); create table sot ( sot_id number(3) PRIMARY KEY, chit varchar2(5), constraint foreign key (chit, 'x') references chits(chit, t) ); при создании второй таблицы выпадает ошибка ORA-00904: : invalid identifier. Что не так делаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 19:58 |
|
||
|
Интересная связь в БД
|
|||
|---|---|---|---|
|
#18+
sanda87, Есть другой вариант - сделать таблицу "Readers" с внешним ключом на "Persons" и в ней поле с форинкеем на таблицу "Pers_type", содержащей записи типа персоны. Readers reader_id r_ticket_numopen_date person_id111223321.03.19871222113331.07.19822333221104.02.19603 Persons pers_idfiotype_id1Pupkin P.P.12Sidorov A.B.23Petrov V.V3 Pers_type type_idtype_name1student2employee3others ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2010, 12:57 |
|
||
|
Интересная связь в БД
|
|||
|---|---|---|---|
|
#18+
sanda87, В DDL это будет выглядеть так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2010, 14:07 |
|
||
|
Интересная связь в БД
|
|||
|---|---|---|---|
|
#18+
Спасибо ребята за ответы, все усвоил:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2010, 20:44 |
|
||
|
Интересная связь в БД
|
|||
|---|---|---|---|
|
#18+
A1ek5andr0sanda87, Есть другой вариант - сделать таблицу "Readers" с внешним ключом на "Persons" и в ней поле с форинкеем на таблицу "Pers_type", содержащей записи типа персоны. Readers reader_id r_ticket_numopen_date person_id111223321.03.19871222113331.07.19822333221104.02.19603 Persons pers_idfiotype_id1Pupkin P.P.12Sidorov A.B.23Petrov V.V3 Pers_type type_idtype_name1student2employee3others Может быть ещё стоит учесть, что Person может оказаться и employee, и studeнт и вообще other :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2010, 01:29 |
|
||
|
Интересная связь в БД
|
|||
|---|---|---|---|
|
#18+
Фёдоров, ФёдоровМожет быть ещё стоит учесть, что Person может оказаться и employee, и studeнт и вообще other :) Можно. Link_Pers_type Pers_id type_id112233 с форинкеями на персов и типы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2010, 10:38 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36606861&tid=1542734]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
149ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 436ms |

| 0 / 0 |
