DB Design - Entity with nearly 1000 attributes

I’ve read and watched tutorials and I’ve played around with building out some scenarios with demo apps. However, I’m now working on my first real app and I’m struggling with data design.

The goal of the app is to allow users to report on distribution of various kinds of literature. However, because the literature is available in print and digitally, we have almost 1000 languages available. I’m not sure if the app will scale with that many attributes available for an entity. I’m also not sure if language should be an entity on it’s own. From my research, I think the answer is no, but from a UI perspective, it makes more sense to pick the language first and then the type of publication. Also, our reports will have some pivots on language, so that may be a factor

I’m also thinking of a 3rd option, which is create a unique code for each combination (EG a book in English would be bk-en). However, since the number of languages is dynamic, I don’t think this will work well.

tl;dr:

  1. Can you build a scalable app for 300 users if 6 entities have ~1000 attributes?
  2. Should I reverse the hierarchy and have 1000 language entities with 6 attributes?
  3. Is there another option or example app that solves this problem?

Thanks!

0 3 414
3 REPLIES 3

Bahbus
New Member

I guess I’m misunderstanding the issue. Are you building an app to catalog where various types of literature can be found? Or a database of where various literature is going? Are you worried about trying to hardcode 1000 different languages into your app?

Because regardless of these issues, if someone using the app just needs to be able to record what language its in, there is the ability to have a searchable dropdown so the user can search for the language. If that language isn’t in the database, it can be setup to allow new languages to be added by the user.

Thanks for your response.

This is basically what I’m trying to build. A form where users can enter literature/language that has been distributed.

My question: Is creating 1000 possible attributes for a small number of entities the best data design?

It’s not really an issue. You can setup your Language column to act as an Enum dropdown that you can preprogram a handful of the obvious possibilities. If/When a user encounters a language not already in the list, they can add it and it will become an option for the future. The dropdown is also searchable, so that as it gets bigger and bigger, it doesn’t matter because the user can just type the first couple of letters and it will auto filter. If the language of said literature is important or relevant at all, then I personally say it can’t be against best data design.

But that’s what I would do. Throw in the top few most common language as suggested values. And then let users add new ones as needed.

Top Labels in this Space