我想創建一個像這樣的自我關係的表...如何創建表,在燒瓶SQL鍊金術
group_id | title | parent_id
-------- | ----- | ---------
1 |mobile | null
2 |Sony | 1
3 |Samsung | 1
4 |Laptop | null
5 |ASUS | 4
6 |Dell | 4
所以GROUP_ID爲羣歸類產品自身的關係是主鍵的表和parent_id是外鍵。我應該如何修改這個類Flask SQL Alchemy?
class ProductGroup(db.Model):
__tablename__ = "product_group"
id = db.Column(db.Integer, primary_key = True)
title = db.Column(db.String(150), unique = True)
parent_id = db.Column(db.Integer)
def __init__(self, title, parent_id):
self.title = title
self.parent_id = parent_id
def __repr__(self):
return '<ProductGroup: {}>'.format(self.title)
另外,我該如何給這個表和我的產品表關係?以下是我的產品表。我想爲此表創建分類表。
class Product(db.Model):
"""
Create Product Table
"""
__tablename__ = 'products'
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(64), unique = True)
summary = db.Column(db.String(512))
features = db.Column(db.String(256))
description = db.Column(db.String(1024))
thumbnail = db.Column(db.String(128))
picture = db.Column(db.String(128))
video = db.Column(db.String(128))
def __init__(self, name, summary, features, description, thumbnail, picture, video):
self.name = name
self.summary = summary
self.features = features
self.description = description
self.thumbnail = thumbnail
self.picture = picture
self.video = video
def __repr__(self):
return '<Product: {}>'.format(self.name)
請不要猶豫,給出產品進行分類和職位表一個更好的解決方案。
我不喜歡擺在首位表:P 所謂的**外鍵**指向同一個表。不知道你爲什麼這樣做 – Nabin
@Nabin嗨,我想在我的數據庫中創建動態分類系統。當用戶想要創建一個新類別並指向其父類時,他可以使用此表。 –
您可以從此答案中退出。 [sqlalchemy自引用表](https://stackoverflow.com/questions/2638217/sqlalchemy-mapping-self-referential-relationship-as-one-to-many-claclarative-f) – ionheart