2017-11-06 17 views
-1

私は本を格納するテーブルをしました:SQLに複数の値を格納する方法はありますか?

CREATE TABLE `Books` (
    `book_id` int(250) NOT NULL, 
    `book_name` varchar(100) NOT NULL, 
    `book_author` varchar(10) NOT NULL, 
    `book_genre` varchar(100) NOT NULL, 
    `book_floor` int(5) NOT NULL, 
    `book_shelf` int(255) NOT NULL, 
    `book_amount` int(255) NOT NULL, 
    `book_available` int(255) NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

私は、彼らが借りた書籍の列を持つことになり、ユーザのテーブルを書きたいので、それは本から書籍に関するすべての情報を格納することがあります複数の書籍を保管することが可能でなければなりません。どうやってやるの?

+0

データベース設計の基本的な側面である基本的な正規形と(1 |多くの) - (1 |多くの)関係を調べます。あなたは本当に重複している "本のすべての情報"を複製したくはありません。どのユーザーがどの書籍をキーで、リンクテーブルに借りたのか、さらに何も借用していないかを指定したいと思います。 –

+0

この回答/質問は実際に[多対多の関係を実装するにはどうすればいいですか?](https://stackoverflow.com/questions/9789736/how-to-implement-a-many-to-many-relationship -in-postgresql) –

+0

[データベース内の1つのフィールドに複数の値を格納する](https://stackoverflow.com/questions/10572987/storing-multiple-values-for-a-single-field-in-データベース)またはhttps://stackoverflow.com/questions/24865310/how-to-store-multiple-values-in-single-field-in-sql-databaseまたはhttps://dba.stackexchange.com/questions/59594/how-to-store-multiple-in-column-in-sql-serverまたはhttps://stackoverflow.com/questions/25236652/how-to-store-multiple-values-in-same-sqlまたはおそらく数十または数百もある。あなたは検索しようとしましたか? –

答えて

2

は、ユーザーと本の間に多くの関係に多くを持っているbooksusers

0

をリンクする第三のテーブルborrowed booksを使用してください。これらの2つのテーブルだけではこれを行うことはできません。あなたは 'UserBooks'テーブルが必要です。このテーブルには、user_idとbook_idのプライマリキーがあります。

基本的に、ユーザーが借りたすべての書籍について、このテーブルにはユーザーのIDをブックIDにマッピングする行があります。

関連する問題