1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
以下是使用 SQLAlchemy 建立 city、area 和 shop 資料表的模型定義:

```
from sqlalchemy import Column, ForeignKey, Integer, String, DECIMAL, TIMESTAMP
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship

Base = declarative_base()


class City(Base):
__tablename__ = 'city'

id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String(255), unique=True)
created_at = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'))
updated_at = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'))

areas = relationship("Area", back_populates="city")


class Area(Base):
__tablename__ = 'area'

id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String(255))
city_id = Column(Integer, ForeignKey('city.id'))

city = relationship("City", back_populates="areas")
shops = relationship("Shop", back_populates="area")


class Shop(Base):
__tablename__ = 'shop'

id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String(255))
city_id = Column(Integer, ForeignKey('city.id'))
area_id = Column(Integer, ForeignKey('area.id'))
address = Column(String(255))
lat = Column(DECIMAL(9, 6))
lng = Column(DECIMAL(9, 6))

city = relationship("City")
area = relationship("Area")
```
請確保你已經安裝了 SQLAlchemy 庫。這段程式碼定義了 City、Area 和 Shop 這三個模型類別,對應於資料庫中的 city、area 和 shop 資料表。它們之間使用外鍵建立關聯,並通過 relationship 定義反向關聯。

你可以將這段程式碼放在適當的檔案中,然後使用 SQLAlchemy 的 ORM 功能來操作資料庫。