Gönderi Tablo Mantığı Nasıl Olmalı SQL
-
Merhaba şu an aklımı bir tık kurcalayan bir şeyle uğraşıyorum aslında çözüm kafamda belli ama sizinle paylaşmak istedim.
Şimdi Ürünler adında bir tablomuz var diyelim ben buraya "Elma" başlığı girip bir de "açıklama" yazacağım. Sonrasında bunu yayınladıktan sonra da başkaları açıklama girebilecek.
Ancak bu şekilde kodlarsam yani tablom [ id, title, description ] şeklinde olursa diğerlerinin açıklamasını [ id, urunid, description ] şeklinde olan başka bir tablodan çekmek zorunda kalacağım. Bu da klasik bildiğimiz blog ya da forum mantığının temelini oluşturuyor. Ve ne kadar istesek de ilk açıklamayı konudan ayıramıyoruz.
Benim yapmak istediğim ise ilk tablodaki descriptionu aradan çıkarmak böylece her açıklama 2. tablom olan [ id, urunid, description ] kısmından gelecek. Acaba ben mi işleri daha komplike yapıyorum daha basit bir yöntemi var mı bu durumun?
--
Bu arada kusura bakmayın cümleyi açık şekilde nasıl ifade edeceğimi bilemedim.
PersonalJesus tarafından 15/Oca/22 16:17 tarihinde düzenlenmiştir -
PersonalJesus bunu yazdı
Merhaba şu an aklımı bir tık kurcalayan bir şeyle uğraşıyorum aslında çözüm kafamda belli ama sizinle paylaşmak istedim.
Şimdi Ürünler adında bir tablomuz var diyelim ben buraya "Elma" başlığı girip bir de "açıklama" yazacağım. Sonrasında bunu yayınladıktan sonra da başkaları açıklama girebilecek.
Ancak bu şekilde kodlarsam yani tablom [ id, title, description ] şeklinde olursa diğerlerinin açıklamasını [ id, urunid, description ] şeklinde olan başka bir tablodan çekmek zorunda kalacağım. Bu da klasik bildiğimiz blog ya da forum mantığının temelini oluşturuyor. Ve ne kadar istesek de ilk açıklamayı konudan ayıramıyoruz.
Benim yapmak istediğim ise ilk tablodaki descriptionu aradan çıkarmak böylece her açıklama 2. tablom olan [ id, urunid, description ] kısmından gelecek. Acaba ben mi işleri daha komplike yapıyorum daha basit bir yöntemi var mı bu durumun?
--
Bu arada kusura bakmayın cümleyi açık şekilde nasıl ifade edeceğimi bilemedim.
Söylediğin biraz da sözlük yapısı, ekşi tarzı. Ancak yapmak istediğinin en basit yolu da bu zaten.
Zamanında benim yapım da aşağıda ki gibiydi.
from app import db from app.models.abstract import BaseModel class Title(BaseModel): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(255), nullable=False, index=True) is_active = db.Column(db.Boolean(), default=True) entrys = db.relationship('Entry', backref='entrys', lazy=True) def __repr__(self): return "Title({})".format(self.name) class Entry(BaseModel): id = db.Column(db.Integer, primary_key=True) title_id = db.Column(db.Integer, db.ForeignKey('title.id'), nullable=False) title = db.relationship('Title', backref="title") user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) user = db.relationship('User', backref="entrys") content = db.Column(db.Text, nullable=False) def __repr__(self): return "Entry({}: {})".format(self.title, self.content[15:])
Ha bu arada, yapmak istediğin şey de normalizasyona aykırı.
" bu şekilde kodlarsam yani tablom [ id, title, description ] şeklinde olursa diğerlerinin açıklamasını [ id, urunid, description ] şeklinde olan başka bir tablodan çekmek zorunda kalacağım."
-
Hocam zaten SQLin mantığı ilişkisel olması değil mi?
Bunu tablolar arasında iliski kurmadan tek tablo yaparsan sorunlar illa çıkarır diye düşünüyorum.