🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.ruby
Article #817

Re: RoR vs PHP

#817
From: Maciej Piechotka
Date: Mon, 31 Dec 2007 23:49
104 lines
3633 bytes
On Mon, 31 Dec 2007 18:51:15 +0000, Jaroslaw Zabiello wrote:

> On Mon, 31 Dec 2007 18:02:08 -0000, Maciej Piechotka
> <uzytkownik2@gmail.com> wrote:
> 
>> Chodzi o czy takie klasy:
>>
>> +--------+
>> | Parent |
>> +--------+
>> | pole1  |
>> +--------+
>>     ^
>>     \------------\
>>      |           |
>> +--------+  +--------+
>> | Child1 |  | Child2 |
>> +--------+  +--------+
>> | pole2  |  | pole3  |
>> +--------+  +--------+
>>
>> Będzie odwzorowane przez:
>> - 1 tabele Parent z pole1, pole2, pole3 i pole oznaczajÄ…ce typ - 3
>> tabele: Parent z pole1, Child1 z pole1 i pole2 oraz Child2 pole1 i
>> pole3
>> - 3 tabele: Parent z pole1, Child1 z pole2 i parent_id oraz Child2 z
>> pole3 i parent_id
> 
> Nie wiem czy dobrze cię rozumiem. Mogłbyś podać pełną strukturę tabel i
> to jakie chciałbyś mieć powiązania między klasami ORM? Chodzi mi o jakiś
> przykład wywołania. Np. czy w pkt 1 chodzi o to aby mozna bylo mieć coś
> takiego?
> 
> Parent.pole1 (pobrane z Parent.pole1) Parent.pole2
> Parent.pole3 (pobrane z Child2.pole3)
> 
> Te dwa kolejne nie rozumiem.

class Parent
  attr_accessor :pole_parent
end

class Child1 < Parent
  attr_accessor :pole1
end

class Child2 < Parent
  attr_accessor :pole2
end

RozwiÄ…zanie nr1(W rails):

CREATE TABLE parents (
  id INTEGER PRIMARY KEY AUTO_INCREMENT,
  type STRING NOT NULL, /* 'Parent', 'Child1' albo 'Child2' */
  pole_parent STRING,
  pole1 STRING,
  pole2 STRING
);

RozwiÄ…zanie nr2:

CREATE TABLE parents (
  id INTEGER PRIMARY KEY AUTO_INCREMENT,
  pole_parent STRING
);

CREATE TABLE childs1 (
  id INTEGER PRIMARY KEY AUTO_INCREMENT,
  pole_parent STRING,
  pole1 STRING
);

CREATE TABLE childs2 (
  id INTEGER PRIMARY KEY AUTO_INCREMENT,
  type STRING NOT NULL,
  pole_parent STRING,
  pole2 STRING
);

RozwiÄ…zanie nr 3:

CREATE TABLE parents (
  id INTEGER PRIMARY KEY AUTO_INCREMENT,
  pole_parent STRING
);

CREATE TABLE childs1 (
  parent_id INTEGER PRIMARY KEY,
  pole1 STRING,
  CONSTRAINT childs1_parent_id FOREIGN KEY
);

CREATE TABLE childs2 (
  parent_id INTEGER PRIMARY KEY,
  pole2 STRING,
  CONSTRAINT childs2_parent_id FOREIGN KEY
);

Pozdrawiam
-- 
I've probably left my head... somewhere. Please wait untill I find it.
Homepage (pl_PL): http://uzytkownik.jogger.pl/
(GNU/)Linux User: #425935 (see http://counter.li.org/)
Technical Details
Message-ID: <3pbo45-ha7.ln1@router.piechotka.com.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.internetia.pl!nnrpd.internetia.pl
References: <fl6ahk$m1q$1@inews.gazeta.pl> <op.t351icnsr2rg33@jzmbp.local> <fl93bh$d8p$1@inews.gazeta.pl> <r4il45-1ar.ln1@router.piechotka.com.pl> <op.t358bkfwr2rg33@jzmbp.local> <fl9aau$9b9$5@inews.gazeta.pl> <20071231084648.6d47feda.gryf_esm-no@spam-o2.pl> <op.t37dq3ydr2rg33@jzmbp.local> <0enn45-u25.ln1@router.piechotka.com.pl> <op.t37qnpdrr2rg33@jzmbp.local>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.internetia.pl!nnrpd.internetia.pl
From: Maciej Piechotka <uzytkownik2@gmail.com>
Newsgroups: pl.comp.lang.ruby
Subject: Re: RoR vs PHP
Date: Tue, 1 Jan 2008 00:49:24 +0100
Organization: Netia S.A.
Lines: 105
Message-ID: <3pbo45-ha7.ln1@router.piechotka.com.pl>
References: <fl6ahk$m1q$1@inews.gazeta.pl> <op.t351icnsr2rg33@jzmbp.local> <fl93bh$d8p$1@inews.gazeta.pl> <r4il45-1ar.ln1@router.piechotka.com.pl> <op.t358bkfwr2rg33@jzmbp.local> <fl9aau$9b9$5@inews.gazeta.pl> <20071231084648.6d47feda.gryf_esm-no@spam-o2.pl> <op.t37dq3ydr2rg33@jzmbp.local> <0enn45-u25.ln1@router.piechotka.com.pl> <op.t37qnpdrr2rg33@jzmbp.local>
NNTP-Posting-Host: 77-253-118-2.adsl.inetia.pl
Mime-Version: 1.0
X-Trace: mx1.internetia.pl 1199145616 21022 77.253.118.2 (1 Jan 2008 00:00:16 GMT)
X-Complaints-To: abuse@inetia.pl
NNTP-Posting-Date: Tue, 1 Jan 2008 00:00:16 +0000 (UTC)
X-Tech-Contact: usenet@internetia.pl
X-Orig-Path: router.piechotka.com.pl!news
User-Agent: Pan/0.132 (Waxed in Black)
X-Server-Info: http://www.internetia.pl/news/
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit