7

Last time I checked it is not recommend to run databases in docker. Simply put docker is designed to be a stateless container that you can spin up and take down as required. Where as Databases are very state-full indeed! With a naive docker database approach you would lose all your data if the container crashed. If you span up a new instance you would get ...


5

If the purpose is to display on a page the first step is to limit the amount of data returned. No one can process 3 million rows at once, find ways to limit the data returned. Requiring search criteria or only returning X rows per page can drastically speed up performance with no real impact to usability. Ensure you are using SQL to create the result set, ...


4

It is never wrong to have a rough idea of what your goals are, at any stage of design, as long as it is a rough idea, a concept on a piece of paper, nothing written in stone. You could also envision certain tables and attributes if it helps you to get a clearer picture. But make sure everyone in the team takes this of what it is: it is not a blueprint of ...


4

You need a single source of truth. Having a single source of truth that is always available is very handy. It really makes life easier if you use an always available database as single source of truth and use the server to update the database. The network is not always available. A fast network is not always available. And lots of people do not have ...


4

I've shied away from Access because my team is not comfortable using SQL and overall dislike the Access Interface. Here's your answer. There is a strong argument to use Excel because it is what your team is comfortable with, and that is pretty darned valuable. But managing multiple workbooks (with changing names) has already created several version ...


3

Containers are ultimately just small wrappers around processes (not machines!) and it is helpful to think about them in terms of that. In this case, each database has its own long-lived master process, and so each probably deserves its own container. This would also help scale to tools like Kubernetes in the future, where the containers could be ...


2

No it doesn't. A social media page, maybe, but even there that's not true. How often do users change their friends/following lists? Much less often I'd wager. What about the list of credit card types, VISA, MC, AmEx, which an online store (like Amazon) accepts? Do you think the cards accepted are changing daily? And its not just the card type, b/c each ...


2

The datamodel is (mostly) independent of the database. Excel is not a database. Ms Access is a great RAD (rapid app devel) frontend, but db (MDAC/Jet) is limited on multiuser, security and backup (no dumps, binary log, etc), but fast and no db-server needed! You can work with Excel, but fetch data from a db (company enviroment Sql Server, MySql, Postgre ...


2

There are a lot of trade-offs in dealing with files in a database. Due to some practical constraints database manufacturers provide a means of storing the files outside the database file structure to speed up the ability to transfer the file to the client. Oracle has DBFS, Microsoft has FileStreams, FileTable, and Remote Blob Store (RBS). The rough trade-...


2

Databases have been designed to be accessed from multiple threads for a long time. Try googling about how to use transactions in databases that should help you on how to ensure consistency in the face of concurent read and write. Also scince you are using mysql, ensure that you are not using the older myisam backend, it has missing support for a lot of ...


2

The database normally use schemas to logically separate unrelated things apart. I would suggest that you consider moving each schema in its own docker instance with its own persistence volume(s). Also be aware that Kubernetes may kill the pod without much notice. You need to configure your database accordingly.


2

In a typical RDBMS the row data lives in a separate area of storage called the heap. The B-tree is just an index pointing into the heap. It is straightforward to construct multiple indexes pointing into the same heap, on an arbitrarily determined key (you can even combine fields or apply functions to them to generate a key). There is a special-case where the ...


1

Noone here can tell you if any database works like this, but I am pretty sure in most cases this is quite simple: For any field or combination of fields where an index was created beforehand, this index is utilized whenever the ORDER_BY clause contains the related fields. That index could be implemented as a B-tree. For any other field (or combination of ...


1

It looks like the combination of WordId and UserId is unique. You could use this as a composite primary key and remove the Id column. Alternately (if you need the Id for other reasons) you could enforce unique combinations with an index. Either way helps to keep your data clean, and saves you from adding queries to check that you're not creating duplicates. ...


1

For the purpose of what you are trying to achieve, your database works fine. There is no redundant data showing (which is one of the requirements of normalization). WordTraining and SyllableTraining reference to the words/syllables being tested and to the users, so that part is correct. Overall, its a good design.


1

You might want to pull the join logic into an inner query, and then have your "prod" and "debug" filtering applied to the same inner. E.g. starting from CREATE PROCEDURE Procedure @param1 Type, @param2 Type AS Select A.id, B.name From A Join B On A.id = B.a_id Where A.prop = @param1 and B.other = @param2 GO You first ...


1

The data in a table can be ordered (this is called a clustered index) but obviously you can only have one sort order. Further indices will not reorder the data, but also they do not contain the data, only the order of rows. If the database does not have an index for the desired ORDER BY clause, it will have to build one on the fly.


1

I think a data model is an essential part of most designs. This means you have expressed the major entities and their relationships in the system you are designing. How is a real world problem and solution mapped to a computer program? You'll quickly fail when working in a team if you go into coding without having reached clarity on how you are going to ...


1

1 course has many rooms 1 room has many courses 1 course has many sections 1 section has 1 course (? Or can the same section appear in multiple courses?) If a section always occurs in a particular room for a particular course, then it depends on the course-room entity that decomposes the many:many relationship between courses and rooms. This thus ...


1

On the front end, most database have a snapshot isolation level where you can run multiple commands against the same database state. What this means is all transactions which completed before yours remain available and all transactions begun after yours remain unavailable. When running multiple exports under such a transaction, referential integrity should ...


Only top voted, non community-wiki answers of a minimum length are eligible