Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. Design and Architecture
  4. user data system for a web-based e-mail service

user data system for a web-based e-mail service

Scheduled Pinned Locked Moved Design and Architecture
databasequestion
26 Posts 8 Posters 37 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M mike7411

    Let's say you don't want to use a SQL database, but you want to create a user data system for a web-based e-mail service. You want to store the following data about each user: username password address alternate email address phone number What kind of data structure should you use? Thank you.

    L Offline
    L Offline
    Lost User
    wrote on last edited by
    #12

    Your primary consideration is: how many users does it need to support; and how many users are "logging in and out at any given time". Then one can say what is feasible and how it will likely perform. There are usually 3 things to consider; you only get to pick 2: cheap, fast and good. (And for about $5 per month you could interface with a Sharepoint Online "list" ... which is transparently backed by you know what).

    "Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I

    L 1 Reply Last reply
    0
    • L Lost User

      Your primary consideration is: how many users does it need to support; and how many users are "logging in and out at any given time". Then one can say what is feasible and how it will likely perform. There are usually 3 things to consider; you only get to pick 2: cheap, fast and good. (And for about $5 per month you could interface with a Sharepoint Online "list" ... which is transparently backed by you know what).

      "Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #13

      How many users? Well, considering a web based email service, the answer is "many". You will not be getting a definite number there, that will depend on the succes of the implentation, it's performance and the final pricing for the endlooser. Aw, and a little bit of marketing - it "only" has to be better or more secure than the free Proton-mail alternative. There's no "pick 2 of these 3"; it won't be cheap nor fast, nor good, if you create your own datastorage alternative in favor of using a free product that is built solely to store and retrieve data and which has been optimized for years to do exactly that one task. In this case it is "pick 0 of these 3", literally.

      Bastard Programmer from Hell :suss: "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

      L 1 Reply Last reply
      0
      • L Lost User

        RedDk wrote:

        In case he's interested

        So maybe you should have posted the message to the OP rather than me.

        R Offline
        R Offline
        RedDk
        wrote on last edited by
        #14

        So sorry. I mean to emphasize the "so" here. I was only noting the deep sarcasm with which I perceived your message to be broadcasting ... and I see, having slept on my original reason for this pearl, and this morning's rodomontade from other cp agents, that msfzz is still unaware that he has a status. No adds beyond that.

        L J R 3 Replies Last reply
        0
        • L Lost User

          How many users? Well, considering a web based email service, the answer is "many". You will not be getting a definite number there, that will depend on the succes of the implentation, it's performance and the final pricing for the endlooser. Aw, and a little bit of marketing - it "only" has to be better or more secure than the free Proton-mail alternative. There's no "pick 2 of these 3"; it won't be cheap nor fast, nor good, if you create your own datastorage alternative in favor of using a free product that is built solely to store and retrieve data and which has been optimized for years to do exactly that one task. In this case it is "pick 0 of these 3", literally.

          Bastard Programmer from Hell :suss: "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #15

          Your assumption of "many" has no basis in fact; as do all your others. It could be a "home project". As others have pointed, OP appears to be "exploring". I was once going to build the ultimate boolean database engine.

          "Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I

          L 1 Reply Last reply
          0
          • L Lost User

            Your assumption of "many" has no basis in fact; as do all your others. It could be a "home project". As others have pointed, OP appears to be "exploring". I was once going to build the ultimate boolean database engine.

            "Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I

            L Offline
            L Offline
            Lost User
            wrote on last edited by
            #16

            As a home project, you'd expect "many" users (not quantifiable). He or she might be exploring, but that doesn't show in the question, does it? It asks specifically about "a web based email service". Do enlighten me, what kind of number of users would you assign to that question, besides my vague answer of "many"? Do explain? I give no shit about your bool DB engine. This is the Design and Architecture Cat, and the headline speak volumes that you missed. My assumption is based on the subject line and one does not build a webbased email for five users. I'm sorry I had to explain that. How much "many" is, is not relevant to you either. It is not like Google is that different from ProtonMail. 10k users or 100M users is the same project, with more servers. It does not require a special command line compiler directive if that changes, it just requires good design. Which start by NOT WRITING A DAL. Not by inquiring to quantify what "much" is. I never assume. Now, get off my lawn.

            Bastard Programmer from Hell :suss: "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

            Richard Andrew x64R L T 3 Replies Last reply
            0
            • R RedDk

              So sorry. I mean to emphasize the "so" here. I was only noting the deep sarcasm with which I perceived your message to be broadcasting ... and I see, having slept on my original reason for this pearl, and this morning's rodomontade from other cp agents, that msfzz is still unaware that he has a status. No adds beyond that.

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #17

              Could you translate that into English please?

              1 Reply Last reply
              0
              • L Lost User

                We are all different, and learn differently. I learned my first programming language (very low level assembler) by copying the reference guide by hand into my own notebook. And then punching the code onto paper tape and feeding it into the system manually. My point about the OP is that he started posting basic questions about C/C++, then moved to Java, then Java scipt, and is now onto SQL.

                J Offline
                J Offline
                jschell
                wrote on last edited by
                #18

                I can remember learning assembler while I was still learning C. Found it very interesting that the C compiler could output assembler and then I could use that output via C manipulation to replace a method in C with assembler and still get the same result. First time I touched a relational database was when I used it via an API to store data. Rather certain I did not even know what 'relational' meant nor that the database did that.

                1 Reply Last reply
                0
                • R RedDk

                  So sorry. I mean to emphasize the "so" here. I was only noting the deep sarcasm with which I perceived your message to be broadcasting ... and I see, having slept on my original reason for this pearl, and this morning's rodomontade from other cp agents, that msfzz is still unaware that he has a status. No adds beyond that.

                  J Offline
                  J Offline
                  jschell
                  wrote on last edited by
                  #19

                  Myself I didn't see any sarcasm. Perhaps a bit of weariness though.

                  1 Reply Last reply
                  0
                  • R RedDk

                    So sorry. I mean to emphasize the "so" here. I was only noting the deep sarcasm with which I perceived your message to be broadcasting ... and I see, having slept on my original reason for this pearl, and this morning's rodomontade from other cp agents, that msfzz is still unaware that he has a status. No adds beyond that.

                    R Offline
                    R Offline
                    RedDk
                    wrote on last edited by
                    #20

                    RedDk wrote:

                    sarcasm

                    It is what it is. As they say. Directly related, self-loathing and graffiti all rolled up into one pricey soccer jersey purchased down at the mall that, arter tumbling home and trying it on, turned out to be inside-out. Standing in a mirror couldn't rectify the patch situation either; they were sewn on upside-down and backwards. Companies market this kind of thing not to be worn just spoken of at cocktail parties. I did keep it though. And it's somewhere in the bin. And as I said to my dental hygenist back a couple of years ago, (paraphrased) "It's above the stove".

                    1 Reply Last reply
                    0
                    • L Lost User

                      As a home project, you'd expect "many" users (not quantifiable). He or she might be exploring, but that doesn't show in the question, does it? It asks specifically about "a web based email service". Do enlighten me, what kind of number of users would you assign to that question, besides my vague answer of "many"? Do explain? I give no shit about your bool DB engine. This is the Design and Architecture Cat, and the headline speak volumes that you missed. My assumption is based on the subject line and one does not build a webbased email for five users. I'm sorry I had to explain that. How much "many" is, is not relevant to you either. It is not like Google is that different from ProtonMail. 10k users or 100M users is the same project, with more servers. It does not require a special command line compiler directive if that changes, it just requires good design. Which start by NOT WRITING A DAL. Not by inquiring to quantify what "much" is. I never assume. Now, get off my lawn.

                      Bastard Programmer from Hell :suss: "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

                      Richard Andrew x64R Offline
                      Richard Andrew x64R Offline
                      Richard Andrew x64
                      wrote on last edited by
                      #21

                      Remember Morrissey's lyrics in The Smiths: "It's so easy to laugh. It's so easy to hate. It takes guts to be gentle and kind."

                      The difficult we do right away... ...the impossible takes slightly longer.

                      1 Reply Last reply
                      0
                      • L Lost User

                        As a home project, you'd expect "many" users (not quantifiable). He or she might be exploring, but that doesn't show in the question, does it? It asks specifically about "a web based email service". Do enlighten me, what kind of number of users would you assign to that question, besides my vague answer of "many"? Do explain? I give no shit about your bool DB engine. This is the Design and Architecture Cat, and the headline speak volumes that you missed. My assumption is based on the subject line and one does not build a webbased email for five users. I'm sorry I had to explain that. How much "many" is, is not relevant to you either. It is not like Google is that different from ProtonMail. 10k users or 100M users is the same project, with more servers. It does not require a special command line compiler directive if that changes, it just requires good design. Which start by NOT WRITING A DAL. Not by inquiring to quantify what "much" is. I never assume. Now, get off my lawn.

                        Bastard Programmer from Hell :suss: "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

                        L Offline
                        L Offline
                        Lost User
                        wrote on last edited by
                        #22

                        I've been following his other posts; and my answer was based on his pattern. You have a pattern too.

                        "Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I

                        1 Reply Last reply
                        0
                        • L Lost User

                          As a home project, you'd expect "many" users (not quantifiable). He or she might be exploring, but that doesn't show in the question, does it? It asks specifically about "a web based email service". Do enlighten me, what kind of number of users would you assign to that question, besides my vague answer of "many"? Do explain? I give no shit about your bool DB engine. This is the Design and Architecture Cat, and the headline speak volumes that you missed. My assumption is based on the subject line and one does not build a webbased email for five users. I'm sorry I had to explain that. How much "many" is, is not relevant to you either. It is not like Google is that different from ProtonMail. 10k users or 100M users is the same project, with more servers. It does not require a special command line compiler directive if that changes, it just requires good design. Which start by NOT WRITING A DAL. Not by inquiring to quantify what "much" is. I never assume. Now, get off my lawn.

                          Bastard Programmer from Hell :suss: "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

                          T Offline
                          T Offline
                          trønderen
                          wrote on last edited by
                          #23

                          I suggest that whenever your message includes the words "get off my lawn", you rather drop the the entire message.

                          Religious freedom is the freedom to say that two plus two make five.

                          L 1 Reply Last reply
                          0
                          • M mike7411

                            Let's say you don't want to use a SQL database, but you want to create a user data system for a web-based e-mail service. You want to store the following data about each user: username password address alternate email address phone number What kind of data structure should you use? Thank you.

                            Richard DeemingR Online
                            Richard DeemingR Online
                            Richard Deeming
                            wrote on last edited by
                            #24

                            mike7411 wrote:

                            You want to store the following data about each user: ... password

                            If that's the user's password for your application, then you most definitely don't want to store it! Instead, store a salted hash of the password, using multiple iterations of a cryptographically-secure one-way hashing algorithm: Secure Password Authentication Explained Simply[^] Salted Password Hashing - Doing it Right[^] If it's the user's password for a third-party system, then you've got a much bigger problem to deal with. The data will need to be encrypted at rest, with appropriate controls in place to ensure that nobody other than the user who owns the record can access their plaintext password. You'll need a robust strategy for storing and rotating your encryption keys. You'll need comprehensive auditing of access to those keys. And probably a million other things I haven't thought of.


                            "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                            "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

                            L 1 Reply Last reply
                            0
                            • T trønderen

                              I suggest that whenever your message includes the words "get off my lawn", you rather drop the the entire message.

                              Religious freedom is the freedom to say that two plus two make five.

                              L Offline
                              L Offline
                              Lost User
                              wrote on last edited by
                              #25

                              Thanks for the suggestion.

                              Bastard Programmer from Hell :suss: "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

                              1 Reply Last reply
                              0
                              • Richard DeemingR Richard Deeming

                                mike7411 wrote:

                                You want to store the following data about each user: ... password

                                If that's the user's password for your application, then you most definitely don't want to store it! Instead, store a salted hash of the password, using multiple iterations of a cryptographically-secure one-way hashing algorithm: Secure Password Authentication Explained Simply[^] Salted Password Hashing - Doing it Right[^] If it's the user's password for a third-party system, then you've got a much bigger problem to deal with. The data will need to be encrypted at rest, with appropriate controls in place to ensure that nobody other than the user who owns the record can access their plaintext password. You'll need a robust strategy for storing and rotating your encryption keys. You'll need comprehensive auditing of access to those keys. And probably a million other things I haven't thought of.


                                "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                                L Offline
                                L Offline
                                Lost User
                                wrote on last edited by
                                #26

                                I already stated that he should store a hash value. Nice to hear that you picked that up :thumbsup:

                                Bastard Programmer from Hell :suss: "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • World
                                • Users
                                • Groups