Има ли, има ли...

8 отговора 352 прегледа
#1

Има ли, има ли...

Абе дали някой се е сетил да направи БД с онаследяване? Тва значи, че ако таблица Т2 е наследник на таблица Т1 то Т2 ще има същата структура (полета, настройки, права и т.н.) като Т1, плюс специфични за Т2 неща.


Я вышел им наперерез!
Отговор
в отговор на Resurrector #2

Re: Има ли, има ли...

може да има и други, но точно такова наследяване (може би правата не вървят с него - не съм се замислял) има postgreSQL

ето документацията на create table

може да наследява и повече от една таблица и т.н., може да не е точно това, което имаш предвид, но прилича ;-))

Отговор
в отговор на phpGuru #3

Re: добавка

а това е някво обяснение - не много пълно, но за обща представа върши работа

Отговор
в отговор на Resurrector #4

Re: Има ли, има ли...

В Oracle има типове които могат да се наследяват и на базата на тях да се създават таблици. Обацхе тогава базата данни вече не е релационна а обектно релационна и поне според мен е малко по трудно да се работи.

Боже колко мъка има на този свят Боже!
Отговор
в отговор на Resurrector #5

Re: Има ли, има ли...

Нещо такова ли имаш предвид?

mysql> create table t2 like t1;
Query OK, 0 rows affected (0.09 sec)

mysql> show tables like "t%";
+---------------------+
| Tables_in_bugs (t%) |
+---------------------+
| t1 |
| t2 |
+---------------------+
2 rows in set (0.05 sec)

salle.online.bg/sig
Отговор
в отговор на Resurrector #6

Re: Има ли, има ли...

Има ;-)))) - ама минаваш в друг клас бази данни - не са вече чисто релационни - ами обектни ;-))) Ако искаш да правиш наистина наследяване - а не просто да си създадеш таблица на базата на някаква друга разбира се. След това можеш да прилагаш операции върху вси4ки subclass -ове на базовия - търсене и прочие

Това ми трябваше като се питах как се прави Persistance Framewоrk(с възможност за точно такова унаследяване ) - потърси в google ще се изненадаш - някъде бях попаднал на страница с доста такива "извратени" БД. Лошото е че при тях (като може да очакваш) не се ползва SQL ами по специфичен език - OCL (object contraint language) или OQL. Кофтито е връзката с програмата - т.е. подвързваш се със специфична база данни (освен ако сам не си напишеш persistance framework-a ;-))) А пък те като разлгеждах - нямат една с друга еднакви - част от тях са на основата на XML - което е + ама другите са доста изчанчени.

---
Е т'ва е живот!
Отговор
в отговор на Resurrector #7

Re: Има ли, има ли...

има...

[линк]

Отговор
в отговор на RepeatableRead #8

Re: Има ли, има ли...

Останал съм с впечатление че 'обектите' които се създават могат да се ползват като полета в други таблици. И че може да се смесват нормални полета и обектни, и да се ползват релации, SQL, и т.н. Това вярно ли е? Много съм ламер в тази област.

Man invented language to satisfy his deep need to complain.
Отговор
в отговор на Resurrector #9

Re: Има ли, има ли...

Обикновенно в този случай слагам в T2 поле с ключа на Т1, т.е. 1:[0..1] отношение между двете таблици. Това не ти ли върши работа? Дай пример за конкретната задача която искаш да решиш?

Man invented language to satisfy his deep need to complain.
Отговор