1

I am building a hobby marketplace (comic books). Users are able to list comic books they own for trading with other members. The problem I'm running into is that I would like to standardize the listings so I can display multiple options per title. Like this:

User 1 lists: "Amazing Spider-man #4" on site.com/amazing-spider-man-4

User 2 goes to list "amazing spiderman 4" -> direct him to place the listing on site.com/amazing-spider-man-4 instead.

Then this starts to get a bit complex... so in a theoretical example, there could be numerous volumes of each series. i.e. Amazing spider-man #4 (released in 1965) and then again, due to a reboot another Amazing spider-man #4 (released in 1981) or whatever.

Is the answer to this to create a database and populate it with all series titles, issue counts and volumes, and then require the user to select one of those before making a submission? Such a data-source does not exist with reliable "volume" information, so I'm not sure how I'd do it.

0

1 Answer 1

0

The problem is that you're allowing free text input and the user is allowed to inut whatever he/she wants to. The examples list the title ("Amazing Spiderman"), the issue ("#4" and "4"), and even the year published ("released in 1965").

The first question you should ask is: what information am I really asking the user for? Do I really want title, issue and year? Should I ask for these things separately instead of in a single field?

If you take the three values you mention ("Amazing Spider-man #4", "amazing spiderman 4" and "Amazing spider-man #4 (released in 1965)" and strip the special characters, formatting, etc you get:

amazingspiderman4
amazingspiderman4
amazingspiderman4releasedin1965

As you see the first 17 characters are the same. That means that if I start typing you can automatically match my input to what's already know and provide suggestions to me.

So I suggest two solutions:

a) break out and classify your data set better; group it into title, issue and year, and make unusual fields optional.

b) implement fuzzy string matching and present the user with the matches so he/she can pick whatever is right or type his/her own.

Option a) is probably the least effort as you're formalizing the input and not allowing as much room for error.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.