2012-02-29 5 views
0

PHP/MySQLの新機能です。私はテーブルの数を最小限に抑えたいので、別のテーブルではなく文字列としてIDの配列を保存することを考えてきました。あなたは私のプログラムで将来使用するためにIDを簡単に解析できるように、文字列としてIDのリストをフォーマットするために何を使用しますか?カテゴリIDのフォーマットをdb内の文字列にするには

+0

データベース設計の伝統を打ち破ればいいわけではありません。 –

答えて

6

値を結合して値をそれぞれ分離するには、implode() およびexplodeを使用できます。また、値を格納するためにserialize()を試すこともできます。私の与えられたリンクには多くの例があるので、あなたの望ましいデータ形式に役立ちます。

0

それは良い考えではありません。私は1:N-Relationが良い選択だと思う。これにより、パフォーマンスが向上し、dbは整合性チェックをサポートします。

ですから、あなたはどこ文、次のカンマ区切りのリストと使用よりも構築することができますしたい場合:

where CONCAT(',', FIELDWITHIDS, ',') like '%,13,%' 

は、ID 13を参照するデータセットを見つけるためにまたはあなたが爆発使用する必要があります() PHPではimplode()を使用します。

0

どちらかのカンマ区切りやPHPのシリアル化(http://php.net/manual/en/function.serialize.php)

、あなたが行うことができるという利点を失う言われていること

が結合または整合性あなたのDBをチェックするので、一般的にそれを避けるべきです。

+0

あなたはそうです。私は結合をすることを忘れていました。私はそれが文字列の場合、私はそれを行うことはできません。 – enchance

関連する問題