2016-05-13 14 views
0

私はiOSショッピングアプリケーションを開発中です。私はバックエンドを書くためにPythonを使用します。mysql - どのようにPythonのリストオブジェクトをmysqlに保存するのですか?

カート部は、listオブジェクトに商品IDの束を保存したいと思います。

ところで、私はSQLAlchemyを使用してSQLクエリを処理します。

私はデータベース設計に多くの経験がないので、listオブジェクトをmysqlに格納する最良の方法は何か、と思います。

私は店の製品のIDと製品のIDとProductテーブルを格納するCartItemテーブルを除いて第三のテーブルが必要かどうか私は、これは1対多の関係の問題だと思うと私はを思ったんだけど?

誰かがserializationを選択したと言っています。 serializationとは何ですか?

カンマでリスト要素を分割し、stringとして保存することはできますか?

私は最近、ウェブサイトから注文する人のためのpython/SQLの錬金術を使ってアプリをした

Store list of values (such as interests)

store list of IDs mysql

How to store a dynamic List into MySQL column efficiently?

答えて

0

のようないくつかの質問の回答を参照しました。私がしたことは、2つのテーブルを作成することでした。ユーザーが発注/発注した品目を保管し、もう1品目には発注日、住所、特別指示書、注文番号などの注文情報が入っていました。それは1対多の関係でした。ユーザーが「進行中」のステータスに置かれたアイテムを追加していたとき、彼がそれらを支払ったとき、それらは「完了」ステータスに置かれました。そのようにして、私は自分のカートに何がいつも入っていて、何のアイテムがすでに注文されているのか知っていました。私は、他のテーブルを使ってすべての出荷/注文を追跡しました。

webappが稼動しており、hereを実行している場合は、注文機能をテストするためにログインする必要があります。

0

カンマ区切りのIDで1つの文字列を保存することは可能ですが、私はそれがクリーンな解決策ではないと思います。実際には、シリアライゼーションの例です。後でオブジェクトを保存して再構成できる形式に変換します(wikipedia)。特に、このような単純な例では、私は3番目のテーブルを使用することをお勧めしたい:

私はあなたがテーブルCartItemに格納理解していないが、私はこれに類似したスキーマを使用したい:

TABLE product 
------------- 
id | price | name | ... 
1 | 10 | socks | ... 
2 | 34 | shirt | ... 

TABLE user 
------------- 
id | name | ... 
1 | John | ... 

TABLE user_cart 
------------- 
user_id | product_id | count | ... 
1  | 1   | 5  | ... 
1  | 2   | 1  | ... 

を表user_cartの単一行は、1つの製品/ユーザー関係を格納するために使用されます。

SQLAlchemyを使用すると、ユーザーのカートに簡単に電話することができます。一部の設定後にUser.cart_itemsbackrefを確認してください。

関連する問題